无法从JSON调用SQL返回数组

时间:2013-11-28 01:57:37

标签: javascript php mysql sql json

只是尝试从“cnt”排序的“猜测”表中抓取所有内容并将其转换为javascript数组。但是,无法让它给我任何可以使用的东西。

PHP文件:

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'root'; 
$dbname = 'words'; 
$dbtable = 'guesses'; 

//------ DATABASE CONNECTION --------// 
mysql_connect($dbhost,$dbuser,$dbpass) 
or die ("Unable to connect to database"); 

mysql_select_db($dbname) 
or die ("Unable to select database"); 

$sql = "SELECT * FROM $dbtable ORDER BY cnt ASC";
$result = mysql_query($sql);

while($array = mysql_fetch_assoc($result)) {
    echo json_encode($array);
}

?> 

JavaScript的:

    $.getJSON('grab.php', function(response) {
    // response is a JSON object that contains all the info from sql query
    // tried so much stuff here... no avail.
        console.log(response);
})

控制台没有说什么。 phpmyadmin控制台中的“SELECT * FROM猜测ORDER BY cnt ASC”会返回正确的条目和顺序。

编辑:我也试过

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'root'; 
$dbname = 'words'; 
$dbtable = 'guesses'; 

//------ DATABASE CONNECTION --------// 
mysql_connect($dbhost,$dbuser,$dbpass) 
or die ("Unable to connect to database"); 

mysql_select_db($dbname) 
or die ("Unable to select database"); 

$sql = "SELECT * FROM $dbtable ORDER BY cnt ASC";
$result = mysql_query($sql);

while($array = mysql_fetch_assoc($result));
echo json_encode($array);

?> 

哪个语法可能更好(???)但它会向控制台返回“false”,而不是其他任何内容。

1 个答案:

答案 0 :(得分:1)

您正在将json编码到错误的位置。

$arr=array();
while($array = mysql_fetch_assoc($result)) {
    array_push($arr,$array);
}
echo json_encode($arr);

试试这个