所以我有一张叫做“手表”的桌子
然后我有3列像这样
id | manufacture | model
1 rolex 2483
2 rolex 3940
3 rolex 4940
4 dent ee30
但我希望输出像
rolex
dent
但是当我尝试以下选择制造商时
('SELECT manufacture FROM `watches` GROUP BY manufacture')
当它应该是“劳力士,凹痕”时,它只显示“凹痕”。怎么不行呢。 iv也尝试了这个,但这给出了相同的结果
('SELECT DISTINCT(`manufacture`) FROM `watches`')
全功能
$query = $this->pdo->prepare('SELECT DISTINCT(`manufacture`) FROM `watches`');
$query->execute();
if($query->fetch()){
$row = $query->fetchAll();
foreach($row as $i){
$select .= '<option value="'.$i['manufacture'].'">'.$i['manufacture'].'</option>';
}
return $select;
} else {
return '<option value="0">No watches yet!</option>';
}
答案 0 :(得分:1)
请尝试使用
if ($query->rowCount() > 0) {
而不是
if($query->fetch()){
因为fetch
从语句中获取结果,但为此您在成功代码中使用fetchAll
。
答案 1 :(得分:0)
添加WHERE 1
'SELECT `manufacture` FROM `watches`WHERE 1 GROUP BY `manufacture`
总是将表格和列名称与重音符号括起来是一种很好的做法。
答案 2 :(得分:0)
您只需要按制造商订购:
SELECT manufacture FROM `watches` GROUP BY manufacture ORDER BY manufacture desc