代码之家  ›  专栏  ›  技术社区  ›  Kiki

MYSQL中缺少第一行数据[重复]

  •  1
  • Kiki  · 技术社区  · 6 年前

    我编写了一个php脚本,返回餐厅名称、地址、电话号码、店铺营业时间表和自定义菜单的链接。然而,即使在数据库中有一个星期一小时的条目,当我在mysqli\u fetch\u assoc中执行while循环时,它也不会显示出来。下面是我的代码:

    <?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>';
       ?>
    

    还提供了我在网站上看到的内容。有人知道为什么会这样吗?

    • my db的小时表屏幕截图 Hours table screenshot from my db

    • 正在打印餐厅小时数的db条目 db entries for restaurant hours being printed

    • 通过php示例2打印小时表 hours table being printed through php example 2

    1 回复  |  直到 6 年前
        1
  •  4
  •   Dharman TechyTech    3 年前

    从代码中删除第21行:

    $row=mysqli_fetch_assoc($result2);
    

    它获取第一行 之前 这个 while 循环获取其余记录。

    为什么?

    虽然 循环调用第一行,但未打印它。输出中缺少此行。