Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MYSQL中的类别?_Php_Mysql - Fatal编程技术网

PHP/MYSQL中的类别?

PHP/MYSQL中的类别?,php,mysql,Php,Mysql,我尝试创建一个菜单系统,并在该菜单中基于一列显示MySQL中的任何内容 例子 目前,我可以从我的管理面板添加产品,并将其添加到MySQL数据库中。当我添加产品时,我可以给该产品一个品牌名称,即diesel、levi等 问题1 现在我知道如何使用从产品中选择品牌…在PHP文件中显示MySQL中的数据库内容,但这将显示我菜单中的所有重复品牌(例如3个levi's、6个柴油机),并显示如下: 李维 李维 李维 柴油 柴油 柴油 柴油机 但我只需要一个。我该怎么做 问题2 如何将柴油类别仅与具有该品牌的

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

例子 目前,我可以从我的管理面板添加产品,并将其添加到MySQL数据库中。当我添加产品时,我可以给该产品一个品牌名称,即diesel、levi等

问题1 现在我知道如何使用
从产品中选择品牌…
在PHP文件中显示MySQL中的数据库内容,但这将显示我菜单中的所有重复品牌(例如3个levi's、6个柴油机),并显示如下:

李维
李维
李维
柴油
柴油
柴油
柴油机

但我只需要一个。我该怎么做

问题2
如何将柴油类别仅与具有该品牌的产品联系起来?例如,如果有人单击diesel类别,php将只显示具有diesel品牌的产品。

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

一,;将
DISTINCT
与查询一起使用,如

SELECT DISTINCT `brand` FROM `products`;
二,;您需要使用
WHERE
子句,该子句基于您以某种方式传递到
category.php
的参数。如果没有现有的代码,我们无法真正帮助您,但这可能就是像
category.php
这样的文件所要做的

也就是说,你的品牌应该包含在一个单独的表中,并与你的产品相关联(可能一个多关系,一个产品可以有一个品牌,但一个品牌可以有多个产品)。在我看来,在继续您的项目之前,您应该真正查找一些数据库设计概念


下面是一个非常简单的关系图:

您不必为您的品牌查询
产品
,只需
从品牌中选择名称
,即可获得您的品牌列表


然后,将您的
品牌id
传递到
category.php
,您可以从品牌id=1的产品中获得类似于so
SELECT*的产品,您需要使用一些SQL

要获得不同的品牌:

'SELECT DISTINCT brand from products'
获取特定品牌的产品

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

我会附和另一个答案,并说您可能想稍微设计一下数据库,找出数据是什么以及它与其他数据块的关系。

问题1: 您的查询应该是:

Select distinct brand from products
问题2:

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

例如,链接应如下所示:

    if(isset($_GET['brand']))

        mysql_query("select * from products where brand='".$_GET['brand']."'");
    else
        mysql_query("select * from products");
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");

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

这是一个问答网站!任何问题都可以问,只要它是一个问题,并且能够以一种有助于其他人查看和学习的方式回答。据我所知,如果回答得当,我的问题可以帮助其他人。事实上,这个问题将帮助许多人学习PHP/MYSQL的基础知识!正如我在问题中提到的,我只需要它的基础知识,而不需要学习如何从mysql和php开始。那么,如果你懒得回答这个问题,那你为什么还要费心去评论呢?!?!?谢谢你的回复。我知道如何将id传递到php页面。但是,如果我将产品保存在另一个表中,而品牌保存在另一个表中,那么如何在菜单中显示与所选品牌相关的产品?这是我不明白的。一定有一个非常简单的逻辑背后,但我不明白@用户2056633我在结尾处给了你这个查询,我很困惑,它是不真实的!老实说,我甚至不懂你的简单图表!没有,还是迷路了。无论如何谢谢你,伙计。。。我必须在谷歌上寻找一个简单的方法,这样我才能理解它。干杯,伙计