Php 使用while循环或其他方法消除多余代码
我在我的网站上有一个选择项目下拉列表,我希望列表中每个类别的总数旁边有一个数字,显示该类别中项目的总数。当用户从我的下拉列表中选择一个类别时,我希望更新我的项目目录列表 我在编码上有困难。我有一个包含SiteTypes和SiteTypeID的表,称为SiteTypes。还有另一个名为sites的表,其中包含数据库中的所有URL,这就是我想向用户显示的内容。URL有不同的类别,我的选择菜单在选择时应该显示每个类别的URL。我很难弄清楚如何显示Php 使用while循环或其他方法消除多余代码,php,mysql,sql,loops,while-loop,Php,Mysql,Sql,Loops,While Loop,我在我的网站上有一个选择项目下拉列表,我希望列表中每个类别的总数旁边有一个数字,显示该类别中项目的总数。当用户从我的下拉列表中选择一个类别时,我希望更新我的项目目录列表 我在编码上有困难。我有一个包含SiteTypes和SiteTypeID的表,称为SiteTypes。还有另一个名为sites的表,其中包含数据库中的所有URL,这就是我想向用户显示的内容。URL有不同的类别,我的选择菜单在选择时应该显示每个类别的URL。我很难弄清楚如何显示 $sql = "SELECT COUNT(u.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 >";
}
}
?>
您确实应该在这里使用prepare和execute,而不是使用硬编码的不同参数值进行三次相同的直接查询。另外,用while循环发布不起作用的代码,并让社区帮助您使其起作用!