0

私はいつも db 要素を . で配列に入れていましたwhile loop。ドキュメントを読んで、要素を配列に入れる他の方法を見ましたが、それらのシステムを使用しようとすると、常に空の配列が得られました。

たとえば、この場合、私のエラーはどこにありますか?

これは機能します:

$data_db = $link->query("SELECT Name FROM TEST_TABLE");
while($data = mysqli_fetch_array($data_db)){
    $names[] = $data['Name'];
}

foreach($names as $n){
    echo $n;
}

これは機能しません:

$data_db = $link->query("SELECT Name FROM TEST_TABLE");
$data = mysqli_fetch_array($data_db);

foreach($data['Name'] as $d){
    echo $d;
}
4

2 に答える 2

4

mysqli_fetch_*()関数はデータの 1を返します。結果セット全体を返すわけではありません。$data['Name']配列としてループしようとしている単一のSTRINGになるため、null しか得られません。

于 2013-06-16T02:12:26.203 に答える
3

これは、2 番目の例で を呼び出すと、単一の行$data = mysqli_fetch_array($data_db);がフェッチされるためと思われます。したがって、本質的に を反復しようとしていますが、これは意味がありません。ループは、各反復でステートメントが実行されることを意味しますが、2 番目の例では 1 回しか実行していないことに注意してください。$data['Name']while$data = mysqli_fetch_array($data_db)

于 2013-06-16T02:13:54.487 に答える