Первая строка базы данных эха не показывает PHP

У меня такая проблема, что первая строка из базы данных не отображается. Вот как это выглядит: Первая строка базы данных эха не показывает PHP

Что я делаю не так?

Вот мой код:

  <?php
    $db=mysqli_connect("xxxxxx","xxxxxxx","","xxxxxxx");
    $sql = "SELECT* from flyreise";
    $result=mysqli_query($db,$sql);

    echo "<table>";
    echo "<tr>";
    echo "<th></th>";
    echo "</tr>";
    echo "<tr>";

$countRows=mysqli_affected_rows($db);
    for($i=0;$i<$countRows;$i++){
        $row=mysqli_fetch_array($result);
        echo "<td><strong>From:</strong>".$row["fra"]." <br><strong>To:</strong> ".$row["til"]." <br><strong>Date:</strong> ".$row["dato"]." <br><strong>Clock:</strong> ".$row["klokkeslett"]."</td>";
        echo "<td></td>";
        echo "<td></td>";
      }

echo "</tr>";
        echo "</table>";
?>

проверьте наличие ошибок после выполнения операторов SQL

Jens 28.08.2018 16:04

Может у вас в базе есть пустая строка?

Cobra_Fast 28.08.2018 16:07

Больше похоже на последний ряд, а не на первый. Попробуйте var_dump($row);, чтобы посмотреть, показывает ли он что-нибудь. Кроме того, вместо использования mysqli_affected_rows и for($i=0;$i<$countRows;$i++), может быть лучше изменить цикл, чтобы вместо этого использовать while($row = mysqli_fetch_array($result)) {.

aynber 28.08.2018 16:07

@aynber Я пробовал это, но потом он просто скрывает последнюю строку и жирный текст, который вы видите. Я знаю, что у меня в базе данных 6 строк, но сейчас отображается только 5.

revl 28.08.2018 16:19

Можете ли вы показать содержимое базы данных? Определите, какая именно строка отсутствует.

aynber 28.08.2018 16:22

используйте это $ countRows = mysqli_affected_rows ($ result);

Mohit Kumar 28.08.2018 16:31

Ваша попытка кодирования является явным доказательством того, что вы не обращались к руководству по php перед публикацией. php.net/manual/en/mysqli-result.fetch-array.php Вы не должны проверять наличие затронутых строк из запроса SELECT, и вам также не нужен счетчик строк. Для ваших нужд лучше вызвать в mysqli_fetch_assoc(). Кроме того, структура вашей таблицы html нарушена - у вас есть 1 ячейка заголовка таблицы, а в теле таблицы 3 столбца. Если вы следовали руководству / видео, вы должны найти другой.

mickmackusa 24.09.2018 23:31

Исправление, у вас нет 3 столбцов в теле таблицы, у вас есть п * 3 столбца в одной строке. Этот дизайн требует переосмысления.

mickmackusa 25.09.2018 00:35
Стоит ли изучать 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 и хотите разрабатывать...
5
8
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Замените петлю for следующим образом:

while($row=mysqli_fetch_array($result)){
    echo "<td><strong>From:</strong>".$row["fra"]." <br><strong>To:</strong> 
    ".$row["til"]." <br><strong>Date:</strong> ".$row["dato"]." <br><strong>Clock: 
   </strong> ".$row["klokkeslett"]."</td>";
    echo "<td></td>";
    echo "<td></td>";
}

Вы говорите программе, чтобы она продолжала перебирать mysql_fetch_array($result) и назначать полученную запись $row.

Также не забудьте вынуть эту строчку $countRows=mysqli_affected_rows($db);, так как она вам больше не нужна.

Теперь разобрался, как заставить работать. Мне пришлось разместить $ result = mysqli_query ($ db, $ sql); прямо над предложением while.

revl 28.08.2018 16:56

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