我尝试创建一个菜单系统,并在该菜单中显示基于一列的MySQL中的任何内容!
示例
目前,我可以添加产品从我的管理面板,它将被添加到MySQL数据库。当我添加一个产品,我可以给这个产品一个品牌名称,即柴油,莱维等。
问题1
现在,我知道如何使用MySQL文件在SELECT brand FROM products ...文件中显示数据库的内容,但这将显示我菜单中的所有重复品牌(例如,3个levi's,6个柴油),它将显示它们如下:
利维 利维 利维 柴油 柴油 柴油 柴油
但我只需要每个人一个。我怎么能这么做?
问题2
我怎样才能把柴油类别和有这个品牌的产品联系起来呢?例如,如果有人点击柴油类别,php只会显示有柴油品牌的产品。
发布于 2013-02-28 21:46:48
这些都是相当简单的关系数据库问题。
1;在查询中使用DISTINCT,如
SELECT DISTINCT `brand` FROM `products`;2;您需要使用WHERE子句,基于传入category.php的参数。没有现有的代码,我们无法真正帮助您,但这可能是像category.php这样的文件所做的事情。
也就是说,你的品牌确实应该包含在一个单独的表格中,并从你的产品(可能是一个-多个关系,一个产品可以有一个品牌,但一个品牌可以有很多产品)链接。在我看来,在继续您的项目之前,您确实应该查找一些数据库设计概念。
下面是一张非常简单的图表,说明你们的关系是如何运作的:

与其向products查询您的品牌,不如通过SELECT name FROM brand来获取您的品牌列表。
然后,将您的brand_id传递给category.php,您可以获得类似于SELECT * FROM product WHERE brand_id = 1的产品。
发布于 2013-02-28 21:48:33
您需要使用一点SQL。
为了得到不同的品牌:
'SELECT DISTINCT brand from products'为某一特定品牌获取产品
'SELECT products WHERE brand = "diesel"'编写第二个查询时要小心,以确保用户不能输入故意有害的数据。使用准备好的语句(PDO / mysqli),如:
$stmt = $dbh->prepare('SELECT products WHERE brand = :brand');
$stmt->bindParam(':brand', $brand);我会回应另一个答案,并说您可能希望设计您的数据库,并计算出数据是什么,以及它与其他数据之间的关系。
发布于 2013-02-28 21:50:23
问题1:您的查询应该如下:
Select distinct brand from products问题2:
您应该将该品牌发送到category.php页面:
例如,链接应该如下所示:
category.php?brand=disel
然后,在category.php页面上,您应该以如下方式更改查询:
if(isset($_GET['brand']))
mysql_query("select * from products where brand='".$_GET['brand']."'");
else
mysql_query("select * from products");最好是向category.php发送您的品牌id而不是品牌字符串,因为查询具有更好的性能。
https://stackoverflow.com/questions/15146218
复制相似问题