php - 将多个数据库结果合并为一个

标签 php mysql sql

我不确定如何称呼这个问题。我一直在思考这个问题,我认为我所选择的内容并不能充分涵盖它,但这是我能做到的最好的。如果它非常具有误导性或不正确,请原谅我。

我正在创建一个供个人使用的小型 CMS,但我遇到了麻烦。

该信息存储在MySQL数据库中,该表有三列:cidpagecont

cid是某段内容的标识符。如果页面有多个内容,例如主文本区域和子文本区域,这些行上的cid会不同,但是>page 将是相同的,因为内容位于同一页面上。

在 CMS 的索引页面上,我将数据库中存在的所有不同页面显示为链接。然后,用户单击指向他想要更改内容的页面的链接。

现在,这是我的问题:

显示数据库中的数据时,具有相同页面但不同 cid 的行在逻辑上显示为单独的链接。

这听起来令人困惑。我会用不同的方式说:

我需要的是如果一个结果与另一个结果具有相同的页面,则这两个结果将合并到一个链接中,而不是显示为两个单独的链接。

这是数据库的样子:

+------------+----------+-----------------------------------------+                                                                           
| cid        | page     | cont                                    |
+-----------------------------------------------------------------+  
| page1-main | page1    | This is the first page on this website! |        
| page2-main | page2    | This is the second page!                |                                                                                                                                 
| page2-sub  | page2    | This is sub-content!                    |                                                                  
+------------+----------+-----------------------------------------+

正如我所说,我想要的是将具有相同页面的任何行合并到我的 while 循环中的一个结果中,因为现在发生的情况是它们被分成两个不同的结果。这是我的循环和查询:

$query = mysqli_query("SELECT * FROM content");

while($row = mysqli_fetch_array($query))
  {
   ?>
     <a href="edit.php?p=<?php echo $row['page'];?>">Link!</a>
   <?php
  }

当然,这会显示两个结果,即使它们具有相同的页面。我不确定这是我必须做的一些 PHP 操作,还是在 MySQL 查询中。我对 SQL 缺乏经验,但对 PHP 相当有经验。

我一直在思考一些假设。就像,将显示的每个新结果存储在变量中,然后比较它们,如果之前发生过的结果再次出现,则不会显示它,或者其他什么。但我不知道。

如果有人能在这里帮助我,那就太好了。

最佳答案

> what I want is to have any rows that have the same page
> be merged into one result 

您可以使用 GROUP BY 来合并它们:

$query = mysqli_query("SELECT * FROM content GROUP BY page");

关于php - 将多个数据库结果合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18262999/

相关文章:

php - 需要重新审视 mysql 查询语句

PHP - 最简单的方法?

mysql - 从 ExtendScript 连接到 MySQL

php - 如何使外部XML文件在浏览器中良好显示?

php - 解析 PubMed 查询的curl结果并将其格式化为引文

php - 比较 2 个表并根据条件更新一个表

php - PHP 中的远程 MySQL 连接

MySQL创建带分隔符的存储过程语法

mysql - 显示来自多个表的列

mysql - 尝试通过命令行连接mysql,密码后留空