我正在尝试循环遍历 mysql 数据库中列中的每个唯一项目
例如,数据库类似于下面,我想显示每种唯一颜色的型号和年份。
数据库示例。 (表名为“汽车”)
----------------------
Color | Model | Year
----------------------
Red | Chevy | 2014
----------------------
Blue | Ford | 2012
----------------------
Red | Ford | 2013
----------------------
Red | Ford | 2014
----------------------
Blue | Ford | 2012
----------------------
Blue | Chevy | 2012
----------------------
Red | Ford | 2011
----------------------
Blue | Chevy | 2012
----------------------
我正在寻找类似的输出: 红色的 雪佛兰 1 福特4
蓝色 福特2 雪佛兰3
下面的代码将显示每种颜色。
<?php
$con = mysqli_connect($servername, $username, $password, $dbname);
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,$dbname);
$sql="SELECT * FROM `cars`";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
echo "<br />" . $row['Color'] . "<br />";
}
mysqli_close($con);
?>
下面将计算不同的颜色。
SELECT COUNT(DISTINCT `Color`) from `cars`;
我需要为每种独特的颜色运行一个函数。
最佳答案
您可以在获取结果时按颜色和型号进行分组。
while ($row = mysqli_fetch_array($result)) {
$colors[$row['Color']][$row['Model']][] = $row['Year'];
}
然后输出这些组以及每种颜色/型号的计数。
foreach ($colors as $color => $models) {
echo "<h2>$color</h2>";
foreach ($models as $model => $years) {
echo "<p>$model: " . count($years) . "</p>";
}
}
例如,我添加了一些基本标记,不过您可能已经知道如何格式化结果。
像这样的分组还意味着您不需要运行第二个查询来计算不同的颜色。
$distinctColorCount = count($colors);
关于php - 如何显示mysql中每个唯一项目的信息,合并每个项目的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55732119/