【问题标题】:How to stop echo data multiple times如何多次停止回显数据
【发布时间】:2018-03-31 09:08:42
【问题描述】:

我正在尝试从多个表中获取数据,并且在获取数据时获取了它们我多次获取相同的数据

如何多次停止回显数据

<?php
$stmt = $DB_con->prepare('SELECT t1.id,t2.id from t1,t2ORDER BY t1.id DESC ');
$stmt->execute();   
if($stmt->rowCount() > 0){
    while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
        extract($row);
}
?>

我正在获取数据,但多次像 t1 有 10 个 id t2 有 20 个 id 所以我在显示器上得到了 30 个 ID

【问题讨论】:

  • 显示您的架构,显示您的预期输出。可能你需要使用JOIN
  • 但我得到这样的数据imgur.com/a/SDCmo
  • 始终将所有问题详细信息作为编辑添加到您的问题中。请删除包含问题详细信息的 cmets。我想你会想要一个不同的 JOIN。
  • 是时候研究不同的 JOIN 了。 stackoverflow.com/questions/5294311/…

标签: php html mysql database fetch


【解决方案1】:

为避免重复行,您可以使用 distinct

  $DB_con->prepare('SELECT DISTINCT  t1.id,t2.id from t1,t2 ORDER BY t1.id DESC ');

但是在您的 FROM 子句中,您使用的是交叉连接(表的每一行之间的笛卡尔积乘以其他表的每一行)

你可能需要一个连接别名表列之间的条件,它与拖表编辑相关。

  $DB_con->prepare('SELECT DISTINCT  t1.id,t2.id 
  from t1
  INNER JOIN t2 ON t1.id = t2.id ORDER BY t1.id DESC ');

基于 t1.id = t2.id 的连接只是一个示例,您应该检查实际的实际连接条件

【讨论】:

    猜你喜欢
    • 2015-05-27
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多