首页 文章

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

提问于
浏览
0

我使用以下脚本从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

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

  • 1

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

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

    现在,为了从两个表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/ . 我希望你喜欢它 .

  • 0

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

    希望我能帮忙

  • 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中的关键名称 .

  • 0

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

相关问题