2016-12-14 8 views
-1

私はMySQLIデータベースラッパーを持つPHPクラスを持っています。私は、実際のハンドルが、私はそうのようなループを処理しています正しくため$result->num_rows戻り1.PHPでMySqliの結果を反復する方法

を機能している、それが動作しないことを知っている:

if($num != 0) //I KNOW that $num >= 1 
{ 
    $response['posts'] = array(); 

    $reachedloop = "false"; 
    while($row = $result->fetch_array(MYSQLI_ASSOC)) 
    { 
     $reachedLoop = "true"; 
     $post = array(); 
     $post['title'] = $row['Post_Title']; 
     $post['songTitle'] = $row['Song_Title']; 
     $post['artist'] = $row['Song_Artist']; 
     $post['album'] = $row['Album_Title']; 
     $post['latitude'] = $row['Post_Latitude']; 
     $post['longitude'] = $row['Post_Longitude']; 
     $post['desc'] = $row['desc']; 
     array_push($response['posts'], $post);      
    } 
    $response["success"] = 1; 
    echo $reachedloop 
    echo json_encode($response); 

デバッグがwhile宣言が原因になっていることが示されていますエラー。ここで使用する適切な構文に関するSOの投稿またはドキュメントが見つかりませんでした。

+0

それはあなたのエラーメッセージを表示していますか? – RiggsFolly

+0

'ini_set( 'display_errors'、1);を追加します。 ini_set( 'log_errors'、1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 'をスクリプトの先頭に追加します。これにより、 'mysqli_'エラーは、あなたが見逃したり無視したりすることができないように、例外を生成するための に強制されます。 – RiggsFolly

+1

この '$ result-> fetch_array(MYSQLI_ASSOC)'をこの '$ result-> fetch_assoc()'で置き換えてみてください。多分それが助けになるでしょう –

答えて

1

私はまだコメントをすることはできませんが、あなたのコードの最後にセミコロンがないことにご注意ください:echo $reachedloop

編集:クエリには$resultsが含まれていますが、コードには$resultがありますが、これは誤字かもしれません。さらに、StackOverflowにコピー/貼り付けするときに切断された可能性のあるif文の終了括弧はありません。あなたはこのフォームを使用して値をチェックすることもできます

+0

良いキャッチですが、残念ながら問題の原因となったセミコロンではなく、 '$ results'はタイプミスです –

-1

while(($row = $result->fetch_array(MYSQLI_ASSOC)) !== null) 
+0

Downvoters、任意のコメント?これはコミュニティが私が推測する理由を知るのに役立ちます... – Simon

関連する問題