【问题标题】:Assign multiple column values to JSON php array using mysql使用mysql将多个列值分配给JSON php数组
【发布时间】:2012-08-27 08:31:27
【问题描述】:

我必须发出一个 JSON ajax 请求并返回一个数组。

我在多个其他问题上找到了此代码(已编辑到我的问题):

var hej[];
function ajax_search(){ 
    $.getJSON('test.php',function(response){
    var data = response.get_response;
    for (i in data){
      hej.push([i,data[i]]);
    }
alert(hej[0]);
}

在 php 部分,我有一个数据库,我需要从中获取数据,我有 5 列 pr。排。我只有一行,我需要数组中的所有五列。

$sql = "SELECT * FROM 'table'
   LIMIT 1 OFFSET $i"; //random offset
$result = mysql_query($sql);

$storeArray = Array();
while($row = mysql_fetch_array($result))
{
    $storeArray[0]=$row['column1'];
    $storeArray[1]=$row['column2'];
    $storeArray[2]=$row['column3'];
    $storeArray[3]=$row['column4'];
    $storeArray[4]=$row['column5'];
}
$json = json_encode($storeArray);
echo $json;

我知道我做错了什么,而且我是编程新手。我需要能够在调用后访问我的 javascript 中的所有列值并在其他函数中使用它们,但我无法让它返回。

如果两者都有错误,我真的会为 javascript 和 php 提供帮助。

【问题讨论】:

  • test.php 脚本输出是什么? (只需在浏览器中打开它,然后查看打印的内容)
  • 你为什么不直接json_encode($row)
  • @Nemaden 那之后我如何访问每一列?
  • 如果不是空字符串,我看不到输出 :)
  • 按名称,例如response.column1

标签: php javascript mysql arrays json


【解决方案1】:

应该是:

function ajax_search(){ 
    $.getJSON('test2.php',function(response){
        // response.column1
        // response.column2
        // response.column3

        // for array push:
        var hej = [];
        $.each(response, function(key, val) {
             hej.push(val);
        });
        alert(hej[0]); // it will alert column1
    });

}

和 MySQL:

$sql = "SELECT `column1`, `column2`, `column3`, `column4`, `column5` FROM `table` LIMIT 1 OFFSET $i"; //random offset
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$json = json_encode($row);
echo $json;

【讨论】:

    【解决方案2】:

    试试这个:

    Javascript 代码:

    var hej[];
    function ajax_search(){
        $.getJSON('test.php',function(response){
            $.each(response.results, function(key, val) {
                hej.push(val);
            });
            alert(hej[0]);
        });
    }
    

    PHP 代码:

    <?php
    $sql = "SELECT * FROM 'table' LIMIT 1 OFFSET $i"; //random offset
    $result = mysql_query($sql);
    
    $storeArray = array();
    while($row = mysql_fetch_array($result)) {
        $storeArray[0]= $row['column1'];
        $storeArray[1]=$row['column2'];
        $storeArray[2]=$row['column3'];
        $storeArray[3]=$row['column4'];
        $storeArray[4]=$row['column5'];
    }
    
    $json = json_encode( array('results' => $storeArray ) );
    echo $json;
    ?>
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      为什么要使用 response.get_response?

      var hej[];
      function ajax_search(){ 
          $.getJSON('test.php',function(data){
          $.each(data, function (i,item) {
            hej.push([i,item]);
          }
      alert(hej[0]);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        相关资源
        最近更新 更多