0

棒グラフ、折れ線グラフなどのレポートを生成する Jquery 関数があります。

Jquery で ajax を使用して、Json オブジェクトを返す php 関数を呼び出しました。問題は、テーブル内のすべての列から完全なデータを返さなければならないことです。ajax を使用して、1 つの列のすべての値を 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

をこれに置き換えるだけwhileで、mysql から完全な結果が得られます。

$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拡張機能の使用を中止してください。廃止予定です (リンク内の大きな赤いボックスを確認してください)。mysqliまたはPDOに置き換えます

于 2013-01-24T08:26:54.187 に答える