拆分数组中的数组(Mysql,PHP和Ajax)

时间:2013-03-19 22:45:16

标签: php mysql ajax arrays

我有一个包含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);
  }
});

1 个答案:

答案 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循环执行,它会将查询输出转换为数组。



快乐的编码。