mysqli ignoring the first row in a table

前端 未结 4 1631
长发绾君心
长发绾君心 2021-01-25 18:14

Here is the code I\'m using to pull the data from the table:

require_once \'connect.php\';
$sql = "SELECT * FROM `db-news`";
$result = $mysqli->query         


        
相关标签:
4条回答
  • 2021-01-25 18:51

    The problem is the first row of the following excerpt:

    $row = mysqli_fetch_assoc($result);
    while ($row = $result->fetch_assoc()) {
    

    The mysqli_fetch_assoc already gets the first row (and thus in the while loop you are already 1 step further). You should either put that line instead of the $reslut->fetch_assoc part into the while statement or delete it. That should solve the problem.

    0 讨论(0)
  • 2021-01-25 18:54

    Use do while instead of while as it will not skip the first step.

    0 讨论(0)
  • 2021-01-25 19:02
    mysqli not ignoring it but actually you are fetching first row before while loop
    
    // $row = mysqli_fetch_assoc($result); //remove this line
     while ($row = $result->fetch_assoc()) {
       ....
     }
    
    0 讨论(0)
  • 2021-01-25 19:05

    mysqli_fetch_assoc() is the same as $result->fetch_assoc() and whenever you call this function it will advance an internal pointer to the next row. You are calling this function once just before the loop which means that you are reading the first row and ignoring the result. Remove that line.

    If you need to fetch the first line and then still loop through the whole result use foreach instead of while. For example:

    require_once 'connect.php';
    $sql = "SELECT * FROM `db-news`";
    $result = $mysqli->query($sql);
    foreach($result as $row) {
        printf($row['pagename'].' - To edit this page <a href="editnews.php?id='.$row['id'].'">click here</a><br>');
    }
    
    0 讨论(0)
提交回复
热议问题