【问题标题】:how to extract mysql data into json using php如何使用php将mysql数据提取到json中
【发布时间】:2011-05-19 13:53:38
【问题描述】:

我使用以下脚本从 json 中的一个表中检索了 mysql 数据

$table_first = 'abc'; $query = "SELECT * FROM $table_first"; $resouter = mysql_query($query, $conn); $set = 数组(); $total_records = mysql_numrows($resouter); 如果($total_records >= 1){ while ($link = mysql_fetch_array($resouter, MYSQL_ASSOC)){ $set[] = $链接; } } 回声 json_encode($set);

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

【问题讨论】:

    标签: php mysql json


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我相信最好的方法是使用 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 的 id 1 表 2 中有 5 条相关记录,表 3 的三个记录。首先它应该打印表 1 的 id 1,而不是表 2 和表 3 的所有 5 条记录。比表 1 的 id 2 应该像这样
        • 所以我应该使用三个查询,但我如何管理所有三个查询并发送到 json_encode。
        【解决方案4】:

        假设有两个表,分别是 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/。我希望你喜欢它。

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-06-16
            • 2014-12-14
            • 1970-01-01
            • 2013-12-31
            • 2016-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多