0

我会尽力解释我的意思,对不起,如果以前有人问过这个问题,我只是不知道我在寻找什么,找到答案?

例如,假设我有一个名为的表TEST,在此表中我有相同的名称和不同的数据,这是一个示例:

NAME  |  EXAMPLE    |  ID
----------------------------
ONE   |  HELLO      |  22  
ONE   |  GOODBYE    |  23  
TWO   |  GREETINGS  |  45  
TWO   |  FAREWELL   |  12  
THREE |  HEY        |  11  
THREE |  BYE        |  81  

如您所见,在该行中NAME-ONE, TWO & THREE是相同的,但在EXAMPLE和中具有不同的数据ID。让我想显示/回显该列 NAME

<?php
$stmt = $db->query('SELECT * FROM data-example ORDER BY id');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : ?>

<?= htmlspecialchars($row['name']) ?>

<?php endwhile ?>

它的输出将是:

ONE
ONE
TWO
TWO
THREE
THREE

我只想NAME在此列中输出一个?例如,输出应如下所示:

ONE
TWO
THREE

php loop显不输出相同名称的列的最佳做法是什么,从某种意义上说,承认有两个同名的字段但只使用一个字段?

注意: 我很抱歉,如果以前有人问过这个问题,如果是这样,请引导我到帖子。

4

2 回答 2

1

在 php 中不需要这样做,因为 MySQL 可以为您完成这项工作。只需GROUP BY name在您的ORDER条款之前添加。

于 2013-10-08T23:39:27.717 回答
1

好吧,如果你不需要桌子的其余部分,你可以改变

$stmt = $db->query('SELECT * FROM data-example ORDER BY id');

$stmt = $db->query('SELECT distinct name FROM data-example');
于 2013-10-08T23:44:40.240 回答