Как отобразить всю таблицу MySQL без ввода имени таблицы в PHP

Мой код приведен ниже. В котором я могу печатать только заголовки таблиц. Я хочу, чтобы таблица, имя которой я ввел в базу данных, отображала всю таблицу.

<?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";
}
foreach ($res as $row) думаю, стоит это сделать... хотя название вопроса и тело вопроса не совпадают
user3783243 26.12.2020 07:55

Можете ли вы отредактировать сам вопрос, он не соответствует тому, что вы ищете

Sana'a Al-ahdal 26.12.2020 09:36

Это помогает? stackoverflow.com/a/64296838/1839439

Dharman 26.12.2020 13:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
3
254
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Во втором цикле 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>";
}

Можете ли вы написать полный код для этой таблицы.

Dilip Kumar 26.12.2020 08:21

@DilipKumar, это полный код, просто измените имя таблицы в моем запросе.

Tausif 26.12.2020 08:23

Ваш цикл 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>';

Другие вопросы по теме