如何使用php将mysql数据提取到json中

时间:2010-12-03 06:01:45

标签: php mysql json

我使用以下脚本

从json中的一个表中检索了mysql数据
$table_first = 'abc';
$query = "SELECT * FROM $table_first";
$resouter = mysql_query($query, $conn);

$set = array();

$total_records = mysql_numrows($resouter);
if($total_records >= 1){

  while ($link = mysql_fetch_array($resouter, MYSQL_ASSOC)){
    $set[] = $link;
  }
}

echo json_encode($set);

如何从其他两个表中检索数据,其中两个表中都有该表的外键。或者我只是如何从php中的3个mysql表中检索数据。

5 个答案:

答案 0 :(得分:1)

我认为最好的方法是使用JOIN或类似的东西:

$sql = "SELECT 
            tabl1.*, table2.*, tabl3.* FROM table1, table2, table3 
        WHERE 
            table1.fk1 = table2.id AND
            table1.fk2 = table2.id";

//Do the whole selection process...

如果您单独进行查询,您将强制对数据库进行3次查询,并以您不需要的性能命中结束。因此,我们的想法是使用连接或类似的方法从数据库加载所有数据,然后对结果进行编码。更快,你将把合并工作留给MySQL

希望我能帮忙

答案 1 :(得分:0)

您可以先获取所有数据。 然后合并数据数组。 最后使用json_encode更改数据格式。

答案 2 :(得分:0)

这两个表中都有一个外键,因此您可以使用“join”从其他表中检索值。

答案 3 :(得分:0)

假设有两个表作为State(st_id,st_name)和City(ct_id,ct_name,state_id)。现在,主键是st_id& ct_id分别表格State&市。

可以通过加入State.st_id和City.state_id来建立这两个表之间的连接。

现在,遇到问题从两个表状态&中检索数据城市,我们可以进行如下的SQL查询,

$sql="select s.*, c.* from State s, City c
       where s.st_id=c.state_id ";

使用上面的查询,您可以从数据库中获取数据并转换为json格式,并可以将其发送到Android系统。这是一篇很好的文章http://blog.sptechnolab.com/2011/02/10/android/android-connecting-to-mysql-using-php/。我希望你喜欢它。

答案 4 :(得分:0)

我相信你的代码大致会是这样的:

$query = "SELECT 
        A.column1 AS First_1
        A.column2 AS First_2
        B.column2 AS Second
        C.column3 AS Third
        FROM table1 A, table2 B, table3 C 
    WHERE 
        A.fk1 = B.id AND
        B.fk2 = C.id";

其中列是您要显示的相关记录。与此同时, AS将作为JSON中的关键名称。