2013-09-26 28 views
2

我從數據庫這裏,代碼發佈我的價值觀:檢索與MySQL JSON多個數據,阿賈克斯

<?php 
$host = "localhost"; 
$user = "root"; 
$pass = ""; 

$databaseName = "ani"; 
$tableName = "balls"; 

//-------------------------------------------------------------------------- 
// 1) Connect to mysql database 
//-------------------------------------------------------------------------- 
include 'DB.php'; 
$con = mysql_connect($host,$user,$pass); 
$dbs = mysql_select_db($databaseName, $con); 

//-------------------------------------------------------------------------- 
// 2) Query database for data 
//-------------------------------------------------------------------------- 
$result = mysql_query("SELECT * FROM $tableName");   
$array = mysql_fetch_row($result);       

//echo json 
echo json_encode($array); 
?> 

然後我想寫我的陣列中的所有行,但不能去了解。但是,這是我的腳本中的代碼。希望你能以某種方式幫助。謝謝。

<script id="source" language="javascript" type="text/javascript"> 

setInterval("yourAjaxCall()",1000); 
function yourAjaxCall() 
{ 
    $.ajax({          
     url: 'api.php',  //the script to call to get data   
     data: "id=1",  //you can insert url argumnets here to pass to api.php 
          //for example "id=5&parent=6" 
     dataType: 'json',   //data format 
     success: function(data)  //on recieve of reply 
     { 
      var id1 = data[0];   //get id of first row 
      var vcolor1 = data[1];  //get color of first row    
      $("#square").css({"background-color" : vcolor1}); 
      $color1 = vcolor1; //saving value 
      var $color1; 

      //HERE I WANT TO BE ABLE TO GET NEXT ROW OF MY JSON ARRAY. HOW? 
     } 
    }); 
}; 

</script> 

我找不到解決方案,所以我非常感謝您的回答。

+0

如果你只想使用Ajax在同一時間拉一行,那麼你可能需要考慮的在mySQL上使用LIMIT命令,以便說明你需要哪一行,並查看一般的數據分頁技術。你基本上保留了你在客戶端結果中的位置的計數器,並使用LIMIT將結果傳遞給SELECT語句以從數據中給出特定的行。 –

+0

嗯,我希望所有的行都寫出來,但我只是成功了一個。所以不明白...... @DarrenCrabb – PeterP

回答

1

在PHP文件做到這一點:

$result = mysql_query("SELECT * FROM $tableName");   
$dataArray = array(); 
while($array = mysql_fetch_assoc($result)){ 
    $dataArray[] = $array; 
} 

echo json_encode($dataArray); 

並在JS:

success: function(data) 
{ 
    var obj = JSON.parse(data); 
    $.each(obj,function(index,value)){ 
     alert(index+" : "+value); //here you can get all data 
    } 
}