0

Mysql クエリに問題があります。私はこのコードを書きました

enter code here
$result = mysql_query("SELECT * FROM description");
        while ($row = mysql_fetch_array($result)){
              $data[] = $row;
                   foreach ($data as $row){
                       echo $row['name'];
           }
     }



enter code here

私の出力は次のとおりです。

First description
First description
Second description
First description
Second description
Third description

私はデータベースに 3 つの説明 (1 番目、2 番目、3 番目) を持っていますが、なぜ彼がこのようなものをくれたのかわかりません。

誰が何が悪いのか知っていますか?

4

3 に答える 3

5

whileこれをループの後に移動する必要があります。

       foreach ($data as $row) {
           echo $row['name'];
       }

最初に$data変数内のすべての行を取得し、次にそれらをエコーアウトし始めます。

于 2012-12-18T15:10:43.297 に答える
2

mysql_fetch_array()キー付き整数AND文字列のデュアル配列を返します。行った場合:

    while ($row = mysql_fetch_array($result)){
       var_dump($row);
    }

両方のキーが表示されます。代わりに使用してみてくださいmysql_fetch_assoc()。これは、文字列キーのバージョンのみを返します。

于 2012-12-18T15:10:57.163 に答える
1

foreachループはwhileループの内側にあります。外に移動して試してみてください。

   $result = mysql_query("SELECT * FROM description");
    while ($row = mysql_fetch_array($result)){
          $data[] = $row;
   }
   foreach ($data as $row){
       echo $row['name'];
   }
于 2012-12-18T15:11:29.737 に答える