2010-04-19 518 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