0

州と都市を取り込んで 10 個のフィールドを吐き出す db クエリを使用しています。現在、これらのフィールドは print_r を使用してのみ表示できます。フィールドを出力するための for ループのphp マニュアル サイトで提案を試みましたが、適切に動作させることができません。コードは次のとおりです。

    if (!$result) {
        echo 'Could not run query: ' . mysql_error();
        exit;
    }
    if (mysql_num_rows($result) > 0) {
        while ($row = mysql_fetch_assoc($result)) {
            print_r($row)."</p>";
            $arrayLength = count($row);
            for ($i = 0; $i < $arrayLength; $i++){
                echo "arrayName at[" . $i . "] is: [" .$row[$i] . "]<br>\n";
            }
                
                
        }

    }

そして、これは結果です:

Array ( [id] => 1299 [zip_code] => 04011 [city] => Brunswick [county] => Cumberland [state_name] => Maine [state_prefix] => ME [area_code] => 207 [time_zone] => Eastern [lat] => 43.9056 [lon] => -69.9646 ) ....
arrayName at[0] is: []
arrayName at[1] is: []
arrayName at[2] is: []
arrayName at[3] is: []
arrayName at[4] is: []
arrayName at[5] is: []
arrayName at[6] is: []
arrayName at[7] is: []
arrayName at[8] is: []
arrayName at[9] is: []

フィールドとその値を正しく印刷できない理由はありますか? また、現在のコードが実際には対応していないため、クエリが複数の行を返す場合、私のコードは失敗します。

for ループの本体に $i を入れて、正しく動作しているかどうかを確認しました。理想的には、$i がフィールド名であり、コロンの後にその右側に値があります。

4

4 に答える 4

3

mysql_fetch_assoc でフェッチしているので、ループを次のように変更します

foreach($row as $key => $value){
echo "Array key : $key = $value <br/>";
}
于 2012-06-28T15:55:32.417 に答える
3

配列のキーはなどです。配列'id'のなどのインデックスには何'zip_code'もありません。01

foreach ($row as $key => $value) {
    echo "arrayName at[" . $key . "] is: [" . $value . "]<br>\n";
    // which is the same as:
    echo "arrayName at[" . $key . "] is: [" . $row[$key] . "]<br>\n";
}
于 2012-06-28T15:54:36.277 に答える
0

mysql_fetch_assoc() の代わりに mysql_fetch_array() を使用する

mysql_fetch_assoc() は連想配列を返し、$row['name'] 経由でのみアクセスできます。mysql_fetch_array() を使用すると、連想配列、数値配列、またはその両方を取得できます。

ここを見てください:http://www.php.net/manual/en/function.mysql-fetch-array.php

于 2012-06-28T15:58:31.577 に答える
0

はい、それは連想配列を返すため、次のように要素にアクセスする必要があることを意味します: $row["id"] たとえば

欲しいものはこれ

foreach($row as $key => $value)
echo "arrayName at[" . $key . "] is: [" .$value . "]<br>\n";
于 2012-06-28T15:55:20.237 に答える