php - 仅显示数据库中的最后一条记录

标签 php mysql mysqli

我已连接,我创建了一个快速脚本,我想在其中管理客户端、域和注释。

问题是,当我从 ID:1 向客户端添加 2 条注释时 - 查看后我只看到一条。

下面的代码显示了我到目前为止所做的事情

SQL 查询:

$sql = "SELECT * FROM domain JOIN note ON domain.id = note.domain_id GROUP BY domain.id";

我的 PHP 代码:

while($rs = $resultdb->fetch_array(MYSQLI_ASSOC)) {
    echo '<tr>';
    echo '<td>'.$rs["id"].'</td>';
    echo '<td><strong><a href="'.$rs["domain_name"].'" target="_blank">'.$rs["domain_name"].'</a></strong></td>';
    echo '<td>'.$rs["note"].'</td>';
    echo '</tr>';
    }

他得到的结果是:

ID   DOMAIN    NOTE

1    "domain1.com"  "note 1 to domain1.com"

2    "domain2.com"  "note 2 to domain2.com"

但是,在数据库中,我为domain1.com 添加了一些注释。

我想查看添加到给定域的所有注释。

编辑:

当我这样做时:“SELECT * FROM domain JOIN note ON domain.id = note.domain_id”;

我得到:

I getting

I expect

编辑:添加屏幕截图

LEFT JOIN

最佳答案

您的 GROUP BY 限制了查询检索的记录。如果您想将所有笔记放在一起,可以尝试使用 GROUP_CONCAT()生成一个包含所有注释的单个字段...

$sql = "SELECT domain.id as id, domain.domain_name as domain_name,
             GROUP_CONCAT(note.note) as note 
           FROM domain 
           LEFT JOIN note ON domain.id = note.domain_id 
           GROUP BY domain.id";

如果没有特定域的注释,您还可以将 JOIN 更改为 LEFT JOIN。

关于php - 仅显示数据库中的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56047025/

相关文章:

php - 我的模型之间的 Laravel 关系

php - 如何使用 PHP 和 cURL 与 XBox API 交互

php - 给出警告 : mysqli_error() expects exactly 1 parameter, 0

javascript - 在这种情况下使用 CSS 或 Jquery 有什么区别

php - 仅在 WooCommerce 我的帐户仪表板中添加自定义 html 内容

php - 使用 AJAX 将项目插入数据库

MySQL重复行,并添加一些新数据

php - 将现有网站信息传递到 PHP/MySQL 数据库而不使用 FORM

php - 警告 : mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool 值在第 21 行/... 中给出

php - 查询两个单独的表,在第二个查询中传递结果,而如果第二个查询返回 null,则仅保留第一个查询的结果