相同的记录字段,只回显一个(PHP)

时间:2013-10-08 23:35:49

标签: php mysql pdo

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

举一个例子,假设我有一个名为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中的内容相同,但EXAMPLEID中的数据不同。让我想要显示/回显列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中回显一个不输出相同名称的列的最佳做法是什么,在某种意义上认识到有两个字段具有相同的名称但只使用一个字段?

注意: 我道歉,如果之前有人问过,如果有,请指示我发帖。

2 个答案:

答案 0 :(得分:1)

没有必要在php中执行此操作,因为MySQL可以为您完成这项工作。只需在GROUP BY name子句之前添加ORDER即可。

答案 1 :(得分:1)

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

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

$stmt = $db->query('SELECT distinct name FROM data-example');