views:

173

answers:

1

I'm using following code but cannot return data from MySQL.

This is the output:

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

It does have three post, but I couldn't get the title(message) output.

EDIT: this is the code I'm using:

<?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> 

This is the table:

message

Try iPhone post!

Welcome to Yo~ :)

好快!

+2  A: 

Why did you use $row['something'] in the loop body? You don't need this.

Try such code:

$somethings = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $somethings[] = $row;
}
Sergey Kuznetsov
yep, it works out fine, thanks, just one more question, how i get the result as : var somethings= {"Welcome to Yo~ :)"},{"Try iPhone post!"},{"message":"????"}; instead of var somethings= [{"message":"Welcome to Yo~ :)"},{"message":"Try iPhone post!"},{"message":"????"}]; with chinese character support?
sky
json_encode() works with UTF-8 encoded data. Maybe you have problems with MySQL connection, which doesn't work in the UTF-8?Try to put additional query before the "SELECT" query: mysql_query("SET NAMES 'utf8'");
Sergey Kuznetsov