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

如何使用php将mysql数据提取到json中,php,mysql,json,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_arra

我使用以下脚本从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); $table_first='abc'; $query=“首先从$table_中选择*”; $resourcer=mysql\u query($query,$conn); $set=array(); $total_records=mysql_numrows($resourcer); 如果($total_records>=1){ 而($link=mysql\u fetch\u数组($resourcer,mysql\u ASSOC)){ $set[]=$link; } } echo json_编码($set);
如何从另外两个表中检索数据,在这两个表中都有该表的外键。或者简单地说,如何在php中从3个mysql表中检索数据。

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

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

我认为最好的方法是使用连接或类似的方法:

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

//Do the whole selection process...
$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";
如果单独进行查询,则将强制对数据库执行3个查询,并最终导致不需要的性能下降。因此,我们的想法是使用连接或类似连接从数据库加载所有数据,然后对结果进行编码。速度更快,您将把合并工作留给MySQL


希望我能提供帮助

假设有两个表作为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系统。这是一篇好文章。我希望你喜欢

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

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

//Do the whole selection process...
$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中的键名。

谢谢guy,但是这个查询一次检索到了整个记录,我想做的是它应该只打印相关记录,即对于表1的id 1,表2中有5条相关记录,表3有3条记录。首先,它应该打印表1的id 1,而不是表2和表3的所有5条记录。对于表1的id 2,它应该是这样的。因此,我应该使用三个查询,但如何管理所有三个查询并发送到json_encode。