2014-08-27 121 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']);