2013-08-22 44 views
-3

我使用這個代碼來從數據庫中的數據並將其轉換成JSON如何從MySQL獲取數據作爲json數據?

<?php 
$username = "root"; 
$password = ""; 
$hostname = "localhost"; 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password , "test") 
    or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 

//json 



$query = mysql_query("SELECT * FROM location"); 
$json_output = array(); 
while($row = mysql_fetch_assoc($query)){ 
    $json_output[] = json_encode($row); 
} 
echo json_encode($row); 
?> 

但IAM得到錯誤的警告:mysql_fetch_assoc()預計參數1是資源,布爾在C中給出:\ WAMP \ WWW \ js.php on line 17

第17行是while($ row = mysql_fetch_assoc($ query))。

請幫助我解決這個問題。

+0

這意味着您的查詢失敗,並且mysql_query返回布爾值false。你還沒有選擇一個數據庫,也許這就是爲什麼。 – Maerlyn

+0

看起來你試圖在'mysql_connect()'的參數中指定數據庫。但是這個函數並不需要數據庫參數,你用'mysqli_connect()'來混淆它。 – Barmar

回答

1

改變最後行:

$query = "SELECT * FROM location"; 
$result = mysql_query($query); 

while($row = mysql_fetch_assoc($result)){ 
    $json_output[] = $row; 
} 
echo json_encode($json_output); 

但你不應該使用mysql *不管怎麼說,它的棄用。

+0

這是正確的,但它與他得到的錯誤無關。 – Barmar

+0

它有。它引入了錯誤消息抱怨的缺失資源。 – ciruvan

+0

不,它不。如果他添加了你的代碼,'$ result'將包含'false',就像'$ query'在他原來的代碼中一樣。他需要調用'mysql_select_db()'來修復它。 – Barmar