while(mysqli_fetch_array())在有更多时只返回1个结果

时间:2017-05-27 17:23:36

标签: php mysql

我刚开始学习PHP,我必须为学校做一项任务。

我遇到mysqli_fetch_array()函数的问题。

这是我的代码:

//Find all book_id for a specific student_id
$query = " SELECT * FROM books_of_students WHERE student_id = '$s_id' ";
$result = mysqli_query($conn, $query); 
$records_b_o_s = mysqli_num_rows($result);

如果我回显变量$ records_b_o_s,它会正确显示MySql从表中返回的记录数,这里是phpMyAdmin的截图:

books_of_students table

以下是我的代码的以下部分:

if ($records_b_o_s >= 1) {

    while ( $row = mysqli_fetch_array($result) ) {
       $temp_book_id = $row['book_id'];
       //do other stuff
    }

}

问题是循环只发生一次而$ row [' book_id']返回第一本书中的值" books_of_students"表。例如,我在循环中执行以下命令:

while ( $row = mysqli_fetch_array($result) ) {
       $temp_book_id = $row['book_id'];
       echo "Current book_id: " . $temp_book_id . "<br>"; //<---This one
       //do other stuff
}

只有一条消息,它只显示表格中的第一个book_id

我真的不知道该怎么做,所以我非常感谢你的帮助!在此先感谢:)

1 个答案:

答案 0 :(得分:0)

感谢大家的时间和答案!

事实证明我在while()循环中做了一些愚蠢的事情。在某些时候我改变了$ result变量的值而没有注意到它!现在代码可以正常工作了!