Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 列出两个连接表的结果_Php_Mysql_List - Fatal编程技术网

Php 列出两个连接表的结果

Php 列出两个连接表的结果,php,mysql,list,Php,Mysql,List,我有两个表格如下: 文件 id |路径|文件名 更改 id |文件| id |更改 文件\u id字段连接到文件表中的id 我对这些表所做的是存储哪些文件被更改以及在文件中所做的更改 我想做的是列出文件,并在文件下列出在该表中所做的更改 在PHP中实现这一点的最佳和最优化的方法是什么 谢谢你的帮助 注意。使用连接查询: SELECT files.*,changes.change FROM files LEFT JOIN changes ON change.file_id = files.

我有两个表格如下:

文件

id |路径|文件名

更改

id |文件| id |更改

文件\u id字段连接到文件表中的id

我对这些表所做的是存储哪些文件被更改以及在文件中所做的更改

我想做的是列出文件,并在文件下列出在该表中所做的更改

在PHP中实现这一点的最佳和最优化的方法是什么

谢谢你的帮助

注意。

使用连接查询:

SELECT files.*,changes.change FROM files 
   LEFT JOIN changes ON change.file_id = files.id
   ORDER BY files.id;
这将获得一个结果集,其中每一行包含:

  • 身份证
  • 文件名
  • 路径
  • 改变
使用ORDER BY查询,您可以存储最后一个:

$fileId = null;
foreach ($results as $result) {
    if ($fileId != $result['id']) {
        echo "{$result['filename']}\n";
        $fileId = $result['id'];
    }

    echo "  {$result['change']}\n";
}

我可以使用连接查询得到结果。我想要实现的是列出结果,比如:文件1=>CHANGES,文件2=>CHANGES等等。谢谢您的回答。@netcoder我想他需要一个
右连接
(或表反转…)和一个
按文件顺序_id
,这样他就可以按文件分组对每个文件进行所有更改(而不是仅1次)。@jeroen:对不起,我还没有想到这是您想要的。我更新了我的答案。@netcoder很抱歉,这是个麻烦,但他需要
从更改中加入文件
,以便获得文件的所有更改。也许即使是一个普通的连接也会更好地获得那些没有更改的文件。谢谢大家的回答。实际上,我想要这样一个列表:Path\Filename>change1>change2>change3path\Filename>change1>change2