繁体   English   中英

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

[英]how to extract mysql data into json using php

我已经使用以下脚本从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表中检索数据。

我相信最好的方法是使用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

希望我能帮忙

我相信您的代码大致如下所示:

$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中的键名。

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

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

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

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

现在,要解决您要从两个表State&City检索数据的问题,我们可以像下面这样进行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/ 我希望你喜欢它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM