0

我有一个 Jquery 函数,它可以生成条形图、折线图等报告。

我在 Jquery 中使用 ajax 来调用返回 Json 对象的 php 函数。问题是,我必须返回表中所有列的完整数据。使用 ajax,我已成功地将单列中的所有值返回到我的 Jquery 函数。但是,我无法返回多个列。请帮我。

//Ajax function calling
$.ajax({                                      
    url: 'Data.php',                  //the script to call to get data          
    data: "",                        //you can insert url argumnets here to pas
                                   //for example "id=5&parent=6"
  dataType: 'json',    
  async: false,//data format      
  success: function(data)          //on recieve of reply
  {
 var returnedArray = [];
returnedArray = data;

  } 
 });
  ///// Data.php code
<?php 


   $host = "localhost";
   $user = "root";
   $pass = "";

   $databaseName = "edb";
   $tableName = "user";
   $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con);


$i=0;
$storeArray= Array();

$result = mysql_query("SELECT User_Id FROM user");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    {
    $storeArray[$i] =  $row['User_Id'];  

    $i++;
    }   




    echo json_encode($newstoreArray);

     ?>

在上面的 Data.php 中,我已成功返回单列“User_Id”值的值。我想返回更多列。

4

2 回答 2

1

首先,您应该在查询中包含更多列:

$result = mysql_query("SELECT User_Id, col2, col3, ... FROM user");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
    array_push($storeArray, array('User_Id' => $row['User_Id'],
                                 'col2'    => $row['col2'],
                                 ... //tell the rest of your columns
                                 ));
    $i++;
}

其次,在success函数中,您应该处理这些新列的值,例如:

success: function(data)          //on recieve of reply
{
   var returnedArray = [];
   returnedArray = data;

   var item = '';
   $.each(data, function(){
       // here you can loop through all columns values like this['User_Id'], this['col2']
       item = ... 
   });
}

请注意:尽量避免mysql_query使用准备好的语句或 PDO。

于 2013-01-24T08:37:56.557 回答
0

只需将其替换为whilemysql,您将获得完整的结果。

$query = "SELECT User_ID, col2, col3 FROM user"; // select multiple columns
$result = mysqli_query($conn, $query); // replaced with procedural mysqli
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) 
{
    $storeArray[] =  $row;  
}   

PS:停止使用mysql扩展,它已被弃用(检查链接中的大红色框)。将其替换为mysqliPDO

于 2013-01-24T08:26:54.187 回答