首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MYSQL中的类别?

PHP/MYSQL中的类别?
EN

Stack Overflow用户
提问于 2013-02-28 21:44:05
回答 3查看 1.1K关注 0票数 0

我尝试创建一个菜单系统,并在该菜单中显示基于一列的MySQL中的任何内容!

示例

目前,我可以添加产品从我的管理面板,它将被添加到MySQL数据库。当我添加一个产品,我可以给这个产品一个品牌名称,即柴油,莱维等。

问题1

现在,我知道如何使用MySQL文件在SELECT brand FROM products ...文件中显示数据库的内容,但这将显示我菜单中的所有重复品牌(例如,3个levi's,6个柴油),它将显示它们如下:

利维 利维 利维 柴油 柴油 柴油 柴油

但我只需要每个人一个。我怎么能这么做?

问题2

我怎样才能把柴油类别和有这个品牌的产品联系起来呢?例如,如果有人点击柴油类别,php只会显示有柴油品牌的产品。

EN

回答 3

Stack Overflow用户

发布于 2013-02-28 21:46:48

这些都是相当简单的关系数据库问题。

1;在查询中使用DISTINCT,如

代码语言:javascript
复制
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的产品。

票数 5
EN

Stack Overflow用户

发布于 2013-02-28 21:48:33

您需要使用一点SQL。

为了得到不同的品牌:

代码语言:javascript
复制
'SELECT DISTINCT brand from products'

为某一特定品牌获取产品

代码语言:javascript
复制
'SELECT products WHERE brand = "diesel"'

编写第二个查询时要小心,以确保用户不能输入故意有害的数据。使用准备好的语句(PDO / mysqli),如:

代码语言:javascript
复制
$stmt = $dbh->prepare('SELECT products WHERE brand = :brand');
$stmt->bindParam(':brand', $brand);

我会回应另一个答案,并说您可能希望设计您的数据库,并计算出数据是什么,以及它与其他数据之间的关系。

票数 1
EN

Stack Overflow用户

发布于 2013-02-28 21:50:23

问题1:您的查询应该如下:

代码语言:javascript
复制
Select distinct brand from products

问题2:

您应该将该品牌发送到category.php页面:

例如,链接应该如下所示:

category.php?brand=disel

然后,在category.php页面上,您应该以如下方式更改查询:

代码语言:javascript
复制
    if(isset($_GET['brand']))

        mysql_query("select * from products where brand='".$_GET['brand']."'");
    else
        mysql_query("select * from products");

最好是向category.php发送您的品牌id而不是品牌字符串,因为查询具有更好的性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15146218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档