我正在关注一个简单的ajax> php>这里发布的mysql示例http://openenergymonitor.org/emon/node/107
我只能显示第一行的信息.我的桌子是这样设置的
--------------
| id | name|
--------------
| 1 | Pat |
| 2 | Joe |
| 3 | Rob |
--------------
Run Code Online (Sandbox Code Playgroud)
PHP代码
$result = mysql_query("SELECT * FROM $tableName"); //query
$array = mysql_fetch_row($result); //fetch result
echo json_encode($array);
Run Code Online (Sandbox Code Playgroud)
剧本
$(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);
}
});
});
Run Code Online (Sandbox Code Playgroud)
行1
如果我把var id = data[0];我得到的值1.如果我把var name = data[1];我得到帕特.
ROWS 2 n 3未定义
示例var id=data[2];返回undefined等
我的问题
为什么我只从第一行获取值?
如何获取除第一行之外的行的信息?
从Stackoverflow上的其他问题我看到我可能不得不使用while循环,但我不确定为什么或如何.
Com*_*eek 21
旧的MySQL扩展mysql已经过时,更好用mysqli或者PDO!
mysql_fetch_row()只返回1行!你必须把它放到一个循环中,例如:
$data = array();
while ( $row = mysql_fetch_row($result) )
{
$data[] = $row;
}
echo json_encode( $data );
Run Code Online (Sandbox Code Playgroud)
您还必须更改JavaScript:
$.ajax({
url: 'api.php', data: "", dataType: 'json', success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var id = row[0];
var vname = row[1];
$('#output').append("<b>id: </b>"+id+"<b> name: </b>"+vname)
.append("<hr />");
}
}
});
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我建议你使用mysql_fetch_assoc()它,因为它使你的代码更灵活,更清洁.
| 归档时间: |
|
| 查看次数: |
26145 次 |
| 最近记录: |