我会尽力解释我的意思,对不起,如果之前有人询问,我只是不知道我在寻找什么,找到答案?
举一个例子,假设我有一个名为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
中回显一个不输出相同名称的列的最佳做法是什么,在某种意义上认识到有两个字段具有相同的名称但只使用一个字段?
注意: 我道歉,如果之前有人问过,如果有,请指示我发帖。
答案 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');