2017-05-27 12 views
-1

私は学校向けの課題をPHPに学習し始めました。while(mysqli_fetch_array())は、さらに多くのものがある場合に1つの結果を返します

私は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 
    } 

} 

問題はループが1回だけ発生し、$ 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 
} 

のみ1つのメッセージがあるでしょうし、それは私が本当にここに何をすべきか分からない

テーブルからのみ最初book_idが表示されます私はあなたの助けに感謝します!事前に感謝:)

+0

彼らはあなたに準備陳述を教えたはずです。良い土台を持つのに役立ちます – Akintunde007

+0

あなたはそのクエリを通過している '$ s_id'の値は何ですか? –

+0

mysqli_fetch_array()の代わりにmysqli_fetch_assoc()を試し、 '='を削除する 'if($ records_b_o_s> 1)'を使ってください。 –

答えて

0

あなたの時間とあなたの答えのためにみんなありがとう!

私はwhile()ループ内で何か愚かなことをしたことが判明しました。ある時点で、私は$ result変数の値を気付かずに変更していました!今度は、コードが正しく動作するようになりました!

関連する問題