我使用以下脚本
从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表中检索数据。
答案 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中的关键名称。