Php 通过不显示所有结果进行分组

Php 通过不显示所有结果进行分组,php,mysql,pdo,group-by,distinct,Php,Mysql,Pdo,Group By,Distinct,所以我有一张叫做“手表”的桌子 然后我有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') 此

所以我有一张叫做“手表”的桌子

然后我有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')
此时此刻,它只显示“凹痕”,而应该是“劳力士,凹痕”。为什么它不起作用。我也试过了,但结果是一样的

('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>';
        }
$query=$this->pdo->prepare('从'watches'中选择DISTINCT('manufacture');
$query->execute();
如果($query->fetch()){
$row=$query->fetchAll();
foreach($i行){
$select.=''.$i['manufacture'].';
}
返回$select;
}否则{
返回“还没有手表!”;
}
添加其中1

'SELECT `manufacture` FROM `watches`WHERE 1 GROUP BY `manufacture`

最好在表名和列名之间加上重音符号。

您只需按制造商订购即可:

SELECT manufacture FROM `watches` GROUP BY manufacture ORDER BY manufacture desc
请尝试使用

if ($query->rowCount() > 0) {
而不是

if($query->fetch()){

因为
fetch
从语句中获取结果,但为此,您在后续代码中使用
fetchAll

您可能只读取了返回的第一个结果。iv添加了完整的函数,我不认为我只读取了一条,我也得到了它。由于某种原因,在类中使用foreach循环不起作用,相反,我返回fetchAll()并在页面上执行foreach循环,它起作用了hanks,我现在就使用它没有问题。我很高兴能帮上忙。