Отсутствует первая строка данных из MYSQL

0

Я написал сценарий php, где я возвращаю имя ресторана, адрес, номер телефона, таблицу часов магазина и ссылку на пользовательское меню. Однако, даже если в базе данных есть запись в течение понедельника, она не появляется, когда я делаю цикл while в mysqli_fetch_assoc. Вот мой код:

<?php
session_start();
$con=mysqli_connect("root","");
$rest_id2=$_GET['id'];
$rest_id=(int)$rest_id2;
var_dump($rest_id);
$sql="SELECT * FROM restaurant WHERE restaurant_id='".$rest_id."'";
$result=mysqli_query($con,$sql);
$rows=mysqli_fetch_assoc($result);
echo '<strong>'. "Restaurant name:". '</strong><br><br>';
echo $rows['restaurant_name'];
echo "<br><br>";
echo "<strong>Address: </strong><br><br>";
echo $rows['address_1']." ".$rows['address_2']." ". $rows['city']. ", ". 
$rows['state']. " ". $rows['zip']. "<br><br>";
echo '<strong>'. "Phone number:". '</strong><br><br>';
echo $rows['phone_number']. "<br><br>";
//hours table
$sql2="SELECT * from hours WHERE restaurant_id='".$rest_id."'";
$result2=mysqli_query($con,$sql2);
$row=mysqli_fetch_assoc($result2);
echo "<table border='1' cellpadding='10'><tr><th>Open or Closed</th> . 
<th>Day</th><th>Start Time</th><th>End Time</th></tr>";
$num_rows=mysqli_num_rows($result2);
// var_dump($num_rows);
while($row=mysqli_fetch_assoc($result2)){
    // var_dump($rows);
    if ($num_rows==0){
        echo "No hours data available";
    }
    elseif($row['day']=="Closed"){
        echo "<td><strong>". $row['day']. "</td></strong><br>";
        echo "<td><strong>". $row['open_closed']. "</td></strong><br>";
        echo "<td><strong>". "-". "</td></strong><br>";
        echo "<td><strong>". "-". "</td></tr></strong><br>";
    }
    else{
        echo "<tr><td><strong>". $row['day']. "</td></strong><br>";
        echo "<td><strong>". $row['open_closed']. "</td></strong><br>";
        echo "<td><strong>". $row['start_time']. "</td></strong><br>";
        echo "<td><strong>". $row['end_time']. "</td></tr></strong><br>";
    }
  }
   echo '<a href="' . "custom_menu.php?id=" .$rows['restaurant_id']. '"'. 
   '>'."<strong>Menu specialized for you</strong>" . '<br>'. '</a>';
   ?>

Также предоставили то, что я вижу на веб-сайте. Кто-нибудь знает, почему это происходит?

  • Таблица скриншотов стола из моего db Изображение 174551

  • записи db для времени работы ресторана Изображение 174551

  • таблица часов печатается по примеру 2 php Изображение 174551

  • 1
    трудно ответить, не видя, что в таблице и структуре таблицы
  • 0
    только что добавлена структура таблицы и что выводится через php
Показать ещё 7 комментариев
Теги:
mysqli
fetch
associative-array

1 ответ

2
Лучший ответ

Удалите строку 21 из вашего кода:

$row=mysqli_fetch_assoc($result2);

а выбирает первый ряд перед while цикл, который извлекает остальную часть набора записей

Зачем?

Вне в while циклы вы звоните 1 - й строки и не печатать. эта строка пропускает вывод

  • 0
    Вы можете быть правы, но можете ли вы объяснить, почему?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню