Php 通过不显示所有结果进行分组
所以我有一张叫做“手表”的桌子 然后我有3个这样的专栏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') 此
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,我现在就使用它没有问题。我很高兴能帮上忙。