Мой код приведен ниже. В котором я могу печатать только заголовки таблиц. Я хочу, чтобы таблица, имя которой я ввел в базу данных, отображала всю таблицу.
<?php
$dataconn = mysqli_connect("localhost", "root", "", "databasename");
$sql = "SELECT * FROM employeedetails";
$res = mysqli_query($dataconn, $sql);
$show = mysqli_fetch_all($res, MYSQLI_ASSOC);
$col = $show[0];
$columns = array();
echo "<pre>";
foreach ($col as $key => $value) {
if (is_string($key)) {
$columns[] = $key;
}
}
echo "<table border='1' cellpadding='10'>";
foreach ($columns as $value) {
echo "<th>$value</th>";
}
for ($x = 0; $x < count($show); $x++) {
echo "$value";
}
Можете ли вы отредактировать сам вопрос, он не соответствует тому, что вы ищете
Это помогает? stackoverflow.com/a/64296838/1839439






Во втором цикле foreach вы печатаете ту же переменную, которую вы использовали для имени столбца, поэтому она печатает имя столбца также для второго цикла, отредактированный код ниже, пожалуйста, проверьте, чтобы распечатать данные таблицы, вам нужно распечатать результат запроса
<?php
$dataconn = mysqli_connect("localhost", "root", "", "database");
$sql = "SELECT * FROM tablename";
$res = mysqli_query($dataconn, $sql);
$show = mysqli_fetch_all($res, MYSQLI_ASSOC);
$col = $show[0];
$columns = array();
echo "<pre>";
foreach ($col as $key => $value) {
if (is_string($key)) {
$columns[] = $key;
}
}
echo "<table border='1' cellpadding='10'>";
echo "<tr>";
foreach ($columns as $value) {
echo "<td>$value</td>";
}
echo "</tr>";
foreach ($show as $tableData) {
echo "<tr>";
foreach ($tableData as $key => $val) {
echo "<td>$val</td>";
}
echo "</tr>";
}
Можете ли вы написать полный код для этой таблицы.
@DilipKumar, это полный код, просто измените имя таблицы в моем запросе.
Ваш цикл for не перебирает массив с данными. Он отображает одно и то же значение N раз.
Ваш подход к отображению таблицы HTML с заголовком слишком сложен. MySQLi имеет специальную функцию под названием fetch_fields(), которая предоставит вам метаданные о столбцах в результате. Вы можете использовать это для отображения строки заголовка.
echo '<table>';
// Display table header
echo '<thead>';
echo '<tr>';
foreach ($res->fetch_fields() as $column) {
echo '<th>'.htmlspecialchars($column->name).'</th>';
}
echo '</tr>';
echo '</thead>';
Если набор результатов также содержит фактические данные, вы можете выполнить итерацию массива с данными и отобразить его построчно.
$show = mysqli_fetch_all($res, MYSQLI_ASSOC);
// If there is data then display each row
if ($show) {
foreach ($show as $row) {
echo '<tr>';
foreach ($row as $cell) {
echo '<td>'.htmlspecialchars($cell).'</td>';
}
echo '</tr>';
}
}
echo '</table>';
foreach ($res as $row)думаю, стоит это сделать... хотя название вопроса и тело вопроса не совпадают