2011-11-11 3 views
0

私は、MySQLとPHP 5を使用しています:私がしなければPHP配列アクセス

foreach ($line as $data) 
    { 
     echo ($data . ", "); 
    } 

をしかし:私はこれを行うと、私は印刷されたクエリの結果を見ることができます

$line = mysql_fetch_array($result, MYSQL_ASSOC);

代わりに、これは:

echo ($line[0] . " " . $line[1] . " " . $line[2]);

私は何も表示されません。また、私は$ラインから値を割り当てることはできません。

$values[] = $line[0]; //は失敗 - 何

なぜを割り当てていないのですか?代わりに私は何をしなければなりませんか?

+0

対応する列名を使用するようにインデックス番号を使用して(E_ALL) 'と呼びます。定義されていない配列インデックスについての 'E_NOTICE'レベルのエラーが表示されます – Phil

+0

mysqlクエリの結果は0インデックス配列ではなく、キーはDBテーブルのulomn名です – Qchmqs

答えて

5

レコードを関連エントリとしてのみ取得するように指定しました(MYSQL_ASSOC)。つまり、$line配列に数値インデックスが含まれないことを意味します。

数字配列のみが必要な場合は、mysql_fetch_row()を使用します。

連想のみ、mysql_fetch_assoc()

あなたはまた、しかし、これはあなたがあなたのforeachループ内のエントリを複製与えるmysql_fetch_array($result, MYSQL_BOTH)を用いた混合数値と連想配列を取得することができます。

0

あなたは、行を配列としてフェッチしたいと言いました。つまり、$ lineは0インデックス配列ではありません。これは連想配列です。つまり、配列のキーはテーブルの列名ですあなたから選んだ。

var_dump($line); // Will display the keys 
0

試してみてください。

echo ($line["id"] . " " . $line["id"] . " " . $line["id"]); 

ので、代わりに[0]あなたが開発している間は、error_reporting `ですべてのエラーをオンに

+1

これは[mysql_fetch_object ) '](http://php.net/manual/en/function.mysql-fetch-object.php)、または連想配列を'(オブジェクト) 'にキャストして – Phil

+0

あなたの愚かなIMビットは今混乱しています –