2013-03-19 89 views
-1

我有一个包含5列和多行的数据库。我使用PHP来获取数据并将其作为JSON作为数组进行回显。它回应的方式是每行中的数据都是一个数组,行本身就是一个数组(数组中的数组)。在数组中分割数组(Mysql,PHP和Ajax)

现在我将数据带入使用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({          
    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

json_encode的数据是什么样的? – castis 2013-03-19 22:52:15

+0

你期望什么数据? – MatRt 2013-03-19 22:52:33

回答

2

要回答你的问题,让我给你如何,你可以在更短的步骤实现这一目标的一些提示。
首先,尝试使用msqli_函数而不是msql_(在php中),它可以更好地处理安全性以及其他改进,同时也是w3school推荐使用的函数。

有一个名为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循环执行的操作,它会将您的查询输出转换为数组。



快乐编码。

+0

YYEEEEESSSSS。你是传奇人物。这一直使我坚持整晚。谢谢。 – Coop 2013-03-19 23:21:49

+0

没什么大不了,不客气。我很高兴它是有用的^^ – Ryoku 2013-03-19 23:22:44