2012-03-15 11 views
1

私は次のコードを使用して、名前がsで始まるテーブルストックのすべてのレコードを取得しています。それは何も印刷しません。PHPからmysqlをクエリ

<?php 
    mysql_connect("localhost","root","qwe123"); 
    mysql_select_db("mydatabase"); 
    $q = mysql_query("SELECT * FROM stocks WHERE name = 's%' "); 
    while($e = mysql_fetch_assoc($q)) 
     $output[] = $e; 
     print(json_encode($output)); 
    mysql_close(); 
?> 

私のコードで何が間違っていますか、アドバイスしてください。それが好き

+0

equalsの代わりにLIKEを使用してみてください – Scuzzy

+0

ループはあなたが思っていることをしていません。 ($ e = mysql_fetch_assoc($ q)){ $ output [] = $ e; print(json_encode($ output)); } ' – bkconrad

答えて

3

クエリ:何でもあなたのJSONを読んでいることは、それが何であるかを知っているように、

$q=mysql_query("SELECT * FROM stocks WHERE name LIKE 's%' "); 
+0

はい、動作します。みんな、ありがとう – user1092042

1

あなたのクエリがSELECT * FROM stocks WHERE name LIKE 's%'

0

する必要がありますが、印刷前にコンテンツタイプを送信:

ヘッダ( "コンテンツを-type:application/json ");

また、私はあなたのJSONをwhileループ内でエンコーディングすることは冗長だと考えています。クエリの結果をすぐにエンコードすることができます。これは配列で、json_encodeが期待するものです。この方法では、フィールド名を出力に追加するという利点があります。

私はこのようにそれを行うだろう:

印刷json_encode(配列( '結果' => $ my_query_result));