2012-01-10 36 views
-4

可能性の重複:ターミナル
Mysqlの結果とPHPの結果は同じではありませんか?

MySQL returns only one row

mysql> select image,title,price from test; 

デシベル結果:

image title price 
1  2  3 
4  5  6 

しかし、

. 
. 
$query=mysql_query("select image,title, price from test",$connect); 

$row=mysql_fetch_object($query); 

print json_encode($row); 

結果PHPで:

image= 1, title = 2 , price=3 

なぜ印刷されません画像= 4タイトル= 5価格= 6? ?

while ($row = mysql_fetch_object($result)) { 
    ... 
} 
+0

ごめんなさい。私は答えを受け入れる方法を知りませんでした。します。 –

答えて

3

あなたはmysql_fetch_object()のためのPHPのドキュメントを見れば、その目的は「結果の行を取得することです:あなたが唯一の最初の$行

を印刷しているので

+0

今回は印刷イメージ= 4、タイトル= 5、価格= 6のみ印刷イメージ= 1タイトル= 2価格= 3なぜ?? –

+0

私は確信していません - まだデータベース内の行ですか?もう一度実行してみてください。これは、多くの多くのPHPスクリプトで使用されている簡単なコードシーケンスです。 –

3

あなたはループを必要としますオブジェクトとして。あなたはもう行がなくなるまで呼び出しておく必要があります:

$result = mysql_query("select image,title, price from test", $connect); 
while ($row=mysql_fetch_object($result)) { 
    print json_encode($row); 
} 
mysql_free_result($result); 

はまた、それはもう少し正確だとして、私は、$resultmysql_query()の戻り値を改名さに気づきます。

1

は、whileループでクエリを入れてみてください:

1
while($row = mysql_fetch_object($query)) 
{ 
print json_encode($row); 
} 

mysql_fetch_objectは、単一の行をフェッチします。行がもうないまで、このように、それらを介してループする必要があります。

while (($row = mysql_fetch_object($query)) !== false) { 
    // do stuff 
} 
1

mysql_fetch_object方法は、結果セットの最初の行のみを返します。すべての行を取得するには、結果セットを反復処理する必要があります。

関連する問題