我有一个页面显示所有公司名称的列表(准确地说是45个)。
数据库表当前有43,815个结果,所以我只想显示没有重复的结果(这就是为什么我选择时使用DISTINCT的原因),但我也想计算每个公司有多少个结果并回显它们
我尝试使用count() as
,但它会删除公司的所有结果,而只将总数(43,815)放进去。
我的问题是我该如何使用DISTINCT显示公司(因为我不想在页面上重复),然后又回显每个公司的总结果?
感谢您的帮助!
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
// Connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT DISTINCT company FROM ads ORDER BY company ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
// Display the company name
echo $row["company"];
// I WOULD LIKE TO ECHO OUT HERE THE TOTAL OF EACH COMPANY HAS (COUNT) IN RESULTS!
}
} else {
echo "0 results";
}
$conn->close();
?>
答案 0 :(得分:3)
尝试:
SELECT
company,
COUNT(company)
FROM
ads
GROUP BY
company
ORDER BY
company
答案 1 :(得分:3)
我认为您可能应该尝试使用<div class="main">
<h1 class="header-text"> ExampleTitle </h1>
<p> Welcome to my website.</p>
</div>
子句。
在不知道表标记的情况下尝试使用此方法:
GROUP BY
答案 2 :(得分:1)
在SELECT查询中使用GROUP BY,这应该可以完成您想要的工作,这会将所有同一家公司归为一组并进行计数。
“从广告GROUP BY公司ORDER BY公司ASC中选择COUNT(公司)