-1

データベースに結果がない場合、PHP の while ステートメントでエラーが発生します。データベースに何も表示されない場合、実行できないのはなぜですか

while ($row = mysqli_fetch_assoc($result_tomorrow)) {
       $rowsB[] = $row['last'];
}

私が得るエラーは、未定義の変数 $rowsB です。データベースに何かを入れると、すべて正常に動作します。while ループを if 文でラップしてみました

if(results){
     while ($row = mysqli_fetch_assoc($result_tomorrow)) {
            $rowsB[] = $row['last'];
            }
}

これもうまくいきませんでした

4

4 に答える 4

3

エラーですか、それとも通知ですか?while ループの前に変数を定義する必要があります。

于 2013-09-09T03:42:47.787 に答える
1

クエリが結果を返さない場合にのみエラーが発生する場合は$rowsB、後で宣言せずに使用しようとしていることが原因です (エラーが発生した行番号に注意してください)。クエリの結果も有効かどうかを常に確認する必要があります。

$rowsB = array();
if ($result_tomorrow) {
    while ($row = mysqli_fetch_assoc($result_tomorrow)) {
       $rowsB[] = $row['last'];
    }
}
于 2013-09-09T03:52:32.463 に答える
0

これを試して

if(mysqli_num_rows($result_tomorrow) > 0){
    while ($row = mysqli_fetch_assoc($result_tomorrow)) {
        $rowsB[] = $row['last'];
    }
}
于 2013-09-09T03:44:59.093 に答える
-1

最初にデータベースが何かを返したかどうかを確認してから、while ステートメントを実行します。

$result = mysqli_query($connection, $query); //execute the query

if( $result ){ //on successful query execution
 if( mysqli_num_rows($result) > 0 ){ //check for number of returned rows. If its > 0
   while( $row = mysqli_fetch_assoc($result) ){ //execute for loop
    //other statements
   }
 }
}
于 2013-09-09T03:48:15.107 に答える