2010-04-19 60 views
0

我正在使用以下代碼,但無法從MySQL返回數據。從MySQL獲取JSON值爲空值,如何正確地將數據從MySQL恢復爲JSON?

這是輸出:

<script type="text/javascript"> 
    var somethings= [null,null,null]; 
</script> 

它確實有三個職位,但我不能拿到冠軍(消息)輸出。

編輯:這是我使用的代碼:

<?php 

    $session = mysql_connect('localhost','name','pass');  
    mysql_select_db('dbname', $session);  

    $result= mysql_query('SELECT * FROM posts', $session); 
    $somethings= array(); 
    while ($row= mysql_fetch_assoc($result)) { 
     $somethings[]= $row['something']; 
    } 
?> 

<script type="text/javascript"> 
    var somethings= <?php echo json_encode($somethings); ?>; 
</script> 

這是表:

消息

嘗試後iPhone!

歡迎呦〜:)

好快!

回答

3

爲什麼你在循環體中使用$行[ '東西']?你不需要這個。

嘗試這樣的代碼:

$somethings = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $somethings[] = $row; 
} 
+0

是的,它的作品了很好,謝謝,還有一個問題,我怎麼得到的結果爲:VAR出頭= { 「歡迎來到呦〜:)」},{ 「嘗試iPhone發佈!」},{「message」:「????」};代替var somethings = [{「message」:「歡迎來到Yo〜:)」},{「message」:「嘗試iPhone發佈!」},{「message」:「????」}];; 支持中文字符? – sky 2010-04-19 17:38:29

+0

json_encode()與UTF-8編碼數據一起工作。也許你在MySQL連接方面有問題,這在UTF-8中不起作用? 嘗試在「SELECT」查詢之前添加其他查詢: mysql_query(「SET NAMES'utf8'」); – 2010-04-19 18:36:09