Php 如何在foreach循环中对来自mySQL数据库的类似结果进行分组?

Php 如何在foreach循环中对来自mySQL数据库的类似结果进行分组?,php,mysql,loops,pdo,Php,Mysql,Loops,Pdo,如果结果相似,我想对它们进行分组,所以我得到的结果如下- cat cat cat cat dog bird 您可以使用 示例 cat dog bird 或者您可以使用 示例- $pdo = $db->prepare('SELECT * FROM animals WHERE id = :id GROUP BY name'); 不同的方式:- 1.:- 2.:- 使用mysql的DISTINCT从表中获取唯一记录,如下所示 $pdo = $db->prepare('SELEC

如果结果相似,我想对它们进行分组,所以我得到的结果如下-

cat
cat
cat
cat
dog
bird
您可以使用

示例

cat
dog
bird
或者您可以使用

示例-

 $pdo = $db->prepare('SELECT * FROM animals WHERE id = :id  GROUP BY name'); 
不同的方式:-

1.:-

2.:-


使用mysql的
DISTINCT
从表中获取唯一记录,如下所示

$pdo = $db->prepare('SELECT name FROM animals WHERE id = :id  GROUP BY name');

Sql DISTINCT子句是您的朋友。 或者,通过php进行的操作将按此方式进行

$pdo = $db->prepare('SELECT DISTINCT name FROM animals WHERE id = :id '); 
$pdo=$db->prepare('SELECT*FROM animals WHERE category=:category');
$pdo->execute(数组('category'=>$category));
而($row=$pdo->fetch(pdo::fetch_ASSOC)){
$name[$row[“name”]=$row[“name”];
echo$name。“
”; }
$pdo=$db->prepare('SELECT DISTINCT name FROM animals WHERE id=:id')
如果您只需要名称,您可以使用
从动物中选择不同的名称……
或通过在查询末尾添加
按名称分组
来使用分组功能。DISTINCT是您的关键字!为什么一开始动物表中有重复项?是否有一个动物类型表列出了您应该选择的不同类型?虽然distinct/group by可能有效,但我希望在使用它们之前更好地理解数据;并确保设计在其他地方没有这些分类。
$pdo = $db->prepare('SELECT DISTINCT name FROM animals WHERE id = :id ');
$pdo = $db->prepare('SELECT name FROM animals WHERE id = :id  GROUP BY name');
$pdo = $db->prepare('SELECT DISTINCT name FROM animals WHERE id = :id '); 
$pdo = $db->prepare('SELECT * FROM animals WHERE category = :category ');  
        $pdo->execute(array('category' => $category));
        while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) {
            $name[$row["name"]] = $row["name"];
            echo $name."<br>";
        }