2012-02-11 15 views
2

私はたぶん簡単なものがありませんが、ここでブロックされているようです...私は2つのテーブルを持つMySQLデータベースを持っています。私は、その後PHPでSQLをループする - 全体配列が取得されない

$result = mysql_query($query);

:だから目標は、データベースを照会し、テーブルに結果を表示することですので、私はそうのように起動します。

$query = "SELECT name, email, phone FROM users";

は、その後、私はこのPHPコードを持っています配列を取得するためにこれを使用する:この時点で

$row = mysql_fetch_array($result);

を、私はL単純に考えていました$row配列を使用して結果を表に表示します。私はすでにテーブルのループと表示を行う機能を持っていますが、残念ながら配列は関数に到達する前に不完全であるようです。私は、データベース内の最初の行を取得し、この時点で

for ($i = 0; $i < count($row); $i++) { 
    echo $row[$i] . " "; 
} 

、および表示されていない3人がある:

は、私はこれを使用し、これをトラブルシューティングします。どんな支援も大歓迎です。

+2

foreach($ row as $ r){echo $ r ['name']。} "$ r ['email'];}たとえば – Mackintoast

答えて

11

mysql_fetch_arrayをループ外に呼び出すと、最初の行のすべての要素の配列のみが返されるため、以下を使用する必要があります。ループを通過するたびにmysql_fetch_arrayによって返された新しい行に行を設定すると、実際に行内のものではなく各行を繰り返し処理します。

while($row = mysql_fetch_array($result)) 
{ 
    // This will loop through each row, now use your loop here 

} 

しかし、良い方法あなたが結果をループするだけの3つの列

while($row = mysql_fetch_assoc($result)) 
{ 
    echo $row['name']." "; 
    echo $row['email']." "; 
} 
+0

ありがとう - これは私の配列を取得します。今はループ/表示機能がなぜ機能していないのかを理解する必要があります。 – nicorellius

3

の一般的な方法の1つは、このようなものである持っているように、それぞれの行を反復処理することです:

$result = mysql_query($query); 
while ($row = mysql_fetch_assoc($result)) { 
    print_r($row); 
    // do stuff with $row 
} 

PHP.netのサンプルとコメントを見てください。あなたはそこで知る必要があるすべてを見つけることができます。

関連する問題