php - MySQL 多行的 JSON 编码

标签 php jquery mysql json

我正在努力通过 PHP(服务器端)和 jQuery(前端)通过一个简单的搜索框将多个 MySQL JSON 行输出到 HTML 表。我已成功将一行 JSON 解析到表中,但现在需要容纳多行 JSON 数据。

搜索页面上的 HTML 表格如下所示:

ARTIST | TITLE | LOCATION 
U2     | One   | Ireland 
Foals  | Miami | UK

传递给它的 JSON 文件使用类似的标题:

{"ARTIST":"Katy Perry","LOCATION":"United States", "TRACKTITLE":"Roar"}

我已经研究了一段时间的代码,合并数组来循环数据。它可以正确地循环遍历 MySQL 行并成功以 JSON 格式发送多行数据(我已经在 Firebug 中解码了我的搜索页面)。问题是我的 jQuery 文件无法将其放入 HTML 表中,导致出现空白页面。我已经尝试了之前 Stackoverflow 问题中的各种数组方法,但无法完全正常工作,每个返回结果都返回“ARTIST”、“TRACKTITLE”和“LOCATION”字段

从 PHP 文件中提取:

$result = mysql_query($sql);
$data = array();
while ($array = mysql_fetch_assoc($result)) {
$data[] = $array;
}
echo json_encode($data);

编辑以包含 jQuery 摘录和更具体的问题:

function(data) {
var sentData=JSON.parse(data)
for (var i = 0; i < sentData.ARTIST.length; ++i)
{
tr = $('<tr/>');
tr.append("<td>" + sentData.ARTIST + "</td>");
tr.append("<td>" + sentData.TRACKTITLE + "</td>");
tr.append("<td>" + sentData.LOCATION + "</td>");
$('#multiple').append(tr);
}
});

如何使用 JSON.parse 方法仅解析每个“ARTIST”、“TRACKTITLE”和“LOCATION”结果的相应值?这是完整返回的 JSON 字符串:

[{"ARTIST":"Katy Perry","TRACKTITLE":"Roar","LOCATION":"United States"}, {"ARTIST":"U2","TRACKTITLE":"One","LOCATION":"Ireland"}]

最佳答案

试试这个,我采用了您提供的 JavaScript 并进行了如下更改。 (另请参阅底部的 jsfiddle)

var sentData=JSON.parse('{"ARTIST":[["Katy Perry"], ["U2"]],"LOCATION":[["United States"], ["Ireland"]],"TRACKTITLE":[["Roar"], ["One"]]}')
for (var i = 0; i < sentData.ARTIST.length; ++i)
{
tr = $('<tr/>');
tr.append("<td>" + sentData.ARTIST[i] + "</td>");
tr.append("<td>" + sentData.TRACKTITLE[i] + "</td>");
tr.append("<td>" + sentData.LOCATION[i] + "</td>");
$('#multiple').append(tr);
}

在这里查看 jsfiddle 的工作情况。 http://jsfiddle.net/jspatel/Ya82B/

关于php - MySQL 多行的 JSON 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749192/

相关文章:

mysql - node.js - 从 mysql 数据库重复更新网页

php - 从当前时间戳默认获取日期时间

php - 登录必须是 https 页面

javaScript从单个值数组返回一个新的成对值数组

javascript - 检查所有图表的数据并隐藏没有数据的图表

mysql - 为什么 Delphi (Zeos) 在我请求 unsigned big int 时在 SQLite 中给我 widestring 字段?

php - MAX(FIELD)+1 - 如果为空

php - 删除语句没有给出错误,但也不起作用

javascript - Knockoutjs - 自定义绑定(bind)嵌套在模板内,attr 尚未在自定义绑定(bind)调用上绑定(bind)

mysql - 将数据从excel导出到mysql