2014-08-27 115 views
-1

我試圖從數據庫中獲取數據返回到我的android應用程序來使用它的一些魔術,但我似乎無法找到這樣做的好方法。到目前爲止,最成功的方法是發送一個很長很長的字符串,每個數據由一個特殊字符分隔。這不起作用,因爲可能發生這樣的情況:特殊符號被使用在其中一個數據中,然後一切都會消失。從php返回一個二維數組android

現在我設法將一行塞入到一個數組中,但是我需要能夠放入幾行。 我的PHP,現在只增加最後一行到

<?php 
    $host="HOST"; 
    $username="USER"; 
    $password="PASS"; 
    $db_name="DATABASE"; 

    $con=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 
    $sql = "SELECT * FROM Table WHERE Column = 1"; 
    $result = mysql_query($sql); 
    $json = array(); 
    if(mysql_num_rows($result)) 
    { 
     while($row=mysql_fetch_assoc($result)) 
     { 
      $json = array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5'], $row['col6']); 

     } 
     echo json_encode($json); 
    } 
?> 
+0

$ JSON [] =陣列($行[ 'COL1'],$行[ 'COL2'],$行[ 'COL3'],$ row ['col4'],$ row ['col5'],$ row ['col6']); – 2014-08-27 13:25:44

+0

在你的while循環中試試'$ json [] = ...'。另外,$ host等不需要在它們周圍,並且不再使用mysql_ *函數,它們(正在?)折舊。使用mysqli_ *或PDO。 – 2014-08-27 13:26:40

回答

2

當你寫的,只有最後$行被存儲在陣列,是的。要每次創建新陣列,只需在$json之後添加[]。這將創建一個新的子陣列的每一行:

$json[] = array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5'], $row['col6']);