2012-03-15 109 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

嘗試使用LIKE而不是等於 – Scuzzy 2012-03-15 06:27:04

+0

while循環沒有做你認爲它正在做的事。嘗試 'while($ e = mysql_fetch_assoc($ q)){輸出[] = $ e; print(json_encode($ output)); }' – bkconrad 2012-03-15 06:29:01

回答

3

查詢它像:

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

是的,它的工作原理。感謝大家 – user1092042 2012-03-15 06:50:46

1

您的查詢應該是SELECT * FROM stocks WHERE name LIKE 's%'

0

打印,使之前發送的內容類型無論是讀你的JSON知道它是什麼:

標題(「內容-type:application/json「);

另外,我相信在while循環中編碼你的JSON是多餘的。您可以將結果直接編碼到查詢中。這是一個數組,這是json_encode期望的。這種方式有在輸出中包含字段名稱的好處。

我會做這樣的:

打印json_encode(陣列( '結果'=> $ my_query_result));