我想在首页 Php Mysql 上按类别查看产品
Posted
技术标签:
【中文标题】我想在首页 Php Mysql 上按类别查看产品【英文标题】:I would like to view the products by category on the home page Php Mysql 【发布时间】:2021-12-28 10:42:26 【问题描述】:这样我得到:
第 1 类
产品
第 1 类
产品
第 2 类
产品
等等……
这是我的新查询:
<?php
$oldcat = "";
$sql_cat = "SELECT coupons_category.category_id, coupons_category.category_name, coupons_coupons.coupon_category, coupons_coupons.coupon_name, coupons_coupons.prezzo_reale, coupons_coupons.coupon_realvalue, coupons_coupons.acconto,coupons_coupons.gratis,coupons_coupons.coupon_startdate,coupons_coupons.coupon_image,coupons_coupons.coupon_enddate, coupons_coupons.meta_title,coupons_coupons.coupon_id FROM coupons_category LEFT JOIN coupons_coupons ON coupons_category.category_id=coupons_coupons.coupon_category ORDER BY coupons_category.category_name";
$result_cat = mysqli_query($conn, $sql_cat);
if (mysqli_num_rows($result_cat) > 0)
while($row_cat = mysqli_fetch_assoc($result_cat))
if ($oldcat != $row_cat['category_id'] )
if ($oldcat != "") echo "<br />";
echo "".$row_cat['category_name']."<br />";
echo "". $row_cat['coupon_name']."";
$oldcat = $row_cat['category_id'];
【问题讨论】:
我会使用单个查询来检索所有项目,按类别排序,加入类别表以获取名称,并在循环显示它们时,检查类别是否已更改自从我展示的最后一个。如果有,则显示新的类别名称。我不使用 mysqli,但在您使用前一个查询的所有结果之前,我已经阅读了使用第二个查询的一些困难 - 如果这确实是一个问题,也许这会影响事情。 另外,如果您只想使用结果中的一列,请不要执行“SELECT *”。 (这可能只是在此示例中,也许您在已编辑的地方使用了其余的产品详细信息。) 我已经尝试过 JOIN,但我没有得到想要的结果。我想要:1Category 和 1st Category 的产品,2Category 和 2nd 类别的产品等...你有什么想法吗? 正如我所说,您可以通过加入轻松完成所需的工作。我会把它写成答案,这样我就可以把伪代码放在正确的布局中。 【参考方案1】:我认为您需要进行一次查询,并检查循环代码中的类别何时发生变化。比如:
$oldcat = "";
$q = "select * from product where status = 'A' left join category on category.category_id = product.category order by category";
; execute the query
; while $row = mysqli_fetch_assoc($result)
if ($oldcat != $row['category'] )
if ($oldcat != "") echo "<br />";
echo $row['category.category_name'] . "<br />";
echo $row['product_name'];
$oldcat = $row['category'];
那是伪代码,所以我错过了所有不相关的部分,比如执行查询、检查它是否有效、转换产品名称等等。但想法是每次检索一行时,检查类别是否发生变化,如果发生变化,则显示新的类别名称。
【讨论】:
谢谢!我听从了您对 JOIN 的建议,现在它工作正常。祝你一切顺利! 太好了,很高兴它对你有用。 Ops...我以为我解决了,但它还是重复了类别名称 好吧,发布你的代码。没看到就忍不住了。编辑您的原始问题,或发布一个新问题。 我在上面发布了新代码,上面有原始字段和表的名称。 coupons_category = 类别和 coupons_coupons = 产品以上是关于我想在首页 Php Mysql 上按类别查看产品的主要内容,如果未能解决你的问题,请参考以下文章