我在网站上有一个选择项下拉列表,我希望列表中每个类别的总数旁边有一个数字,以显示该类别中项目的总数。当用户从下拉列表中选择类别时,我希望更新目录列表。
我在编码时遇到麻烦。我有一个包含SiteTypes和SiteTypeID的表,称为sitetypes。还有另一个表称为站点,站点中包含数据库中的所有URL,这是我要向用户显示的内容。网址有不同的类别,选择后,我的选择菜单应显示网址的每个类别。我在弄清楚如何显示时遇到麻烦
$sql = "SELECT COUNT(u.url) AS total, u.SiteTypeID, p.SiteType FROM sites AS u LEFT JOIN sitetypes AS p USING (SiteTypeID) WHERE SiteTypeID=3";
$sq2 = mysqli_query($dbc, $sql);
$sq3 = "SELECT COUNT(u.url) AS total, u.SiteTypeID, p.SiteType FROM sites AS u LEFT JOIN sitetypes AS p USING (SiteTypeID) WHERE SiteTypeID=4";
$sq4 = mysqli_query($dbc, $sq3);
$sq5 = "SELECT COUNT(u.url) as total, u.SiteTypeID, p.SiteType FROM sites AS u LEFT JOIN sitetypes AS p USING (SiteTypeID) WHERE SiteTypeID=5";
$sq6 = mysqli_query($dbc, $sq5);
echo $row['url'] $row['SiteType'];
echo $row2['url'] $row2['SiteType'];
echo $row3['url'] $row3['SiteType'];
我想显示数据库中每个类别的URL总数。任何想法,将不胜感激。我尝试使用while循环,但无法正常工作。
最佳答案
我对要获取的确切内容有些困惑(可以发布一些示例数据和示例输出吗?)。但是,为什么不将3个查询合并在一起呢?
<?php
$sql = "SELECT COUNT(u.url) AS total, u.SiteTypeID, p.SiteType
FROM sites AS u
LEFT JOIN sitetypes AS p USING (SiteTypeID)
WHERE SiteTypeID IN (3, 4, 5)
GROUP BY u.SiteTypeID, p.SiteType";
if ($sql2 = mysqli_query($dbc, $sql))
{
while ($row = mysqli_fetch_assoc($sql2))
{
echo $row["total"].." - ".$row["SiteTypeID"].." - ".$row["SiteType"]."<br >";
}
}
?>
关于php - 使用while循环或其他方法消除多余的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22939875/