我有一个包含5列和多行的数据库。我正在使用PHP来获取数据并将其作为JSON作为数组回显。它回应它的方式是每行中的数据是一个数组,行本身是一个数组(数组中的数组)。
现在我使用Ajax将数据带入,并希望在阵列中拆分数组。到目前为止我只能拆分行。我怎么会进一步拆分?
这是PHP:
//==== FETCH DATA
$result = mysql_query("SELECT * FROM $tableName");
//==== PUT DATA INTO ARRAY
$array = array();
while ($row = mysql_fetch_row($result)) {
$array[] = $row;
}
//==== ECHO AS JSON
echo json_encode($array);
这是Ajax:
$.ajax({
url: 'assets/php/results.php',
data: "",
dataType: 'json',
success: function(data){
//==== FETCH DATA FIELDS
var row1 = data[0];
var row2 = data[1];
//==== UPDATE HTML WITH DATA
$('#r-col span.row1').html(row1);
$('#r-col span.row2').html(row2);
}
});
答案 0 :(得分:2)
要回答您的问题,请告诉您一些如何以较短的步骤实现这一目标的提示 首先,尝试使用msqli_函数而不是msql_(在php中),它可以更好地处理其他改进中的安全性,也是w3schools推荐使用的函数。
有一个名为mysqli_fetch_array()的函数,它将完全按照您在单个命令中对for循环执行的操作。
要回答关于json的问题,你应该看看json的真实情况:
var data = {"menu": {
"id": "file",
"value": "File123",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Json对象不是数组,它们是对象。这意味着我可以访问这样的信息:
data.menu.id //Which is equal to "file"<br>
或
data[0][0] //which is also equal to "file"<br>
或组合
data[0].value //is equal to "File123"
了解此对象的工作方式的一种好方法是使用Chrome中的交互式控制台。它有一个非常容易理解的对象打印。我还建议你阅读一些关于javascript的面向对象编程。
简而言之:Json对象不是数组,但您可以通过附加轻松地对它们进行排序。或[]
小注意:尽量避免在语句中使用Select *,它们会占用大量资源,只需按名称调用所需的字段即可。
此外,msql_函数现在有点不赞成,尝试使用msqli_函数,它们在安全方面有几个升级,你可以查看w3schools.com的例子。
最后,php中有一个名为msqli_fetch_array的函数,它完全按照你的for循环执行,它会将查询输出转换为数组。
快乐的编码。