Извлечение данных из базы данных в HTML-таблицу - PullRequest
3 голосов
/ 06 июня 2019

Я извлекаю данные из базы данных, но получаю только первую строку в динамически создаваемую HTML-таблицу.

Я пытался добавить еще один цикл foreach, но это не ответ ... У меня нет идей ...

$conn = new PDO('mysql:host=localhost;dbname=jeuxvideo', $dbUserName, $dbPassword);
$sql = "SELECT * FROM jeuxvideo";
$result = $conn->prepare($sql);
$request = $result->execute();

echo "<table border='1'>";
echo "<tr><td>Id</td><td>Titre</td><td>Prix<td>Date de Sortie</td><td>Genre</td><td>Origine</td><td>Mode</td><td>Connexion</td></tr>\n";
$row = $result->fetch(PDO::FETCH_ASSOC);

echo "<tr>";
foreach ($row as $key => $value) {
echo "<td>$value</td>";
}
echo "</tr>";
echo "</table>";

Этот код извлекает всю правильную информацию и помещает ее в нужное место в таблице html, но по некоторым причинам он не собирает данные следующих строк ...

Ответы [ 3 ]

1 голос
/ 06 июня 2019

Эта строка выбирает только одну строку:

$row = $result->fetch(PDO::FETCH_ASSOC);

Вам нужно выбрать столько строк, сколько она может дать вам.Если больше нет строк для извлечения, функция вернет FALSE, поэтому вы можете использовать цикл while, например:

while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    echo "<tr>";
    foreach ($row as $key => $value) {
        echo "<td>$value</td>";
    }
    echo "</tr>";
}
echo "</table>";
0 голосов
/ 06 июня 2019

Попробуйте это

 $conn = new PDO('mysql:host=localhost;dbname=jeuxvideo', $dbUserName, $dbPassword);
$sql = "SELECT * FROM jeuxvideo";
$result = $conn->prepare($sql);
$request = $result->execute();

echo "<table border='1'>";
echo "<tr><td>Id</td><td>Titre</td><td>Prix<td>Date de Sortie</td><td>Genre</td><td>Origine</td><td>Mode</td><td>Connexion</td></tr>\n";

$row = $request->fetch_all();

echo "<tr>";
foreach ($row as $key => $value) {
echo "<td>$value</td>";
}
echo "</tr>";
echo "</table>";
0 голосов
/ 06 июня 2019

Поскольку у вас нет подготовленных переменных для запроса, вы можете просто сделать:

<?php
$stmt = $pdo->query('SELECT * FROM jeuxvideo');

echo '<table>';

foreach ($stmt as $row) {
    echo '<tr>';

    echo "<td>$row['name']</td>";
    echo "<td>$row['url']</td>";
    echo "<td>$row['timestamp']</td>";

    echo '</tr>';
}

echo '</table>';

2-й метод будет:

<?php
$stmt = $pdo->query('SELECT * FROM jeuxvideo');

echo '<table>';

while ($row = $stmt->fetch()) {
    echo '<tr>';

    echo "<td>$row['name']</td>";
    echo "<td>$row['url']</td>";
    echo "<td>$row['timestamp']</td>";

    echo '</tr>';
}

echo '</table>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...