【发布时间】:2011-12-22 14:23:22
【问题描述】:
我正在关注一个简单的 ajax>php>mysql 示例发布在这里 http://openenergymonitor.org/emon/node/107
我只能显示第一行的信息。 我的桌子是这样设置的
--------------
| id | name|
--------------
| 1 | Pat |
| 2 | Joe |
| 3 | Rob |
--------------
php代码
$result = mysql_query("SELECT * FROM $tableName"); //query
$array = mysql_fetch_row($result); //fetch result
echo json_encode($array);
脚本
$(function ()
{
$.ajax({
url: 'api.php', data: "", dataType: 'json', success: function(data)
{
var id = data[0]; //get id
var vname = data[1]; //get name
$('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname);
}
});
});
第 1 行
如果我输入var id = data[0];,我会得到值 1。
如果我输入 var name = data[1]; 我会得到 Pat。
ROWS 2 n 3 未定义
示例var id=data[2]; 返回未定义
等等
我的问题
为什么我只获取第一行的值?
如何获取第一行以外的行的信息?
从 Stackoverflow 上的其他问题中,我看到我可能不得不使用 while 循环,但我不确定为什么或如何。
【问题讨论】:
-
尝试使用 mysql_fetch_array 而不是 mysql_fetch_row。问候乔纳斯
-
你能不能单独访问php页面而不是通过ajax请求来告诉我们json echo在屏幕上打印了什么?
-
@Jonas 谢谢。我尝试了 mysql_fetch_array 但它仍然返回未定义的数据 [2]、数据 [3] 等
-
@Guilherme Costa 我得到了 ["1","Pat"]
-
顺便说一下,所有
mysql_fetch_*函数只返回1行!