Php 如何从MySQL数据库中的6个表中搜索产品?

Php 如何从MySQL数据库中的6个表中搜索产品?,php,mysql,Php,Mysql,你的问题不是很清楚 但还是让我试试。假设每个表中都有productid和productname(在示例中,我假设有三个表t1、t2和t3)。这是你要做的 SELECT FROM solarbricklight, solarcharger, solarlantern, solarled, solarlightfan, solarlightingkits WHERE ="productid AND productname" ORDER BY productid 因此,您将从所有三个表中获得结果,

你的问题不是很清楚

但还是让我试试。假设每个表中都有productid和productname(在示例中,我假设有三个表t1、t2和t3)。这是你要做的

SELECT FROM solarbricklight, solarcharger, solarlantern, solarled, solarlightfan, solarlightingkits
WHERE ="productid AND productname" 
ORDER BY productid

因此,您将从所有三个表中获得结果,并且您可以通过查看其类型值来确定哪一行来自哪一个表。

看起来您应该这样对待数据库设计:


桌上产品

  • 产品标识(内部自动配置)
  • 产品名称(varchar(50))

然后您可以像:

从产品名称中选择产品id、产品名称,如“%search\u string%”
按产品id ASC订购

如果要从六个表中独立搜索,请使用
union all

$query = "(SELECT productid, productname, 't1' as type FROM t1 WHERE productid = 1 OR productname LIKE '%" . $keyword ."%') UNION (SELECT productid, productname, 't2' as type FROM t2 WHERE productid = 1 OR productname LIKE '%" . $keyword ."%') UNION (SELECT productid, productname, 't3' as type FROM t3 WHERE productid = 1 OR productname LIKE '%" . $keyword ."%')";

mysql_query($query);

您需要确保
select
子句中的列都是兼容的(并且都有相同的编号)。最后的排序依据是整个查询的结果。

以下是一些关于数据库设计的教程-阅读此教程,然后开始设计数据库:)



我是
solar ed
。我们怎么知道solarbricklight、solarcharger、solarlantern中都有什么。。等等?为什么每种产品类型都有一个单独的表格?那只是一个糟糕的数据库design@OP,按照马克·贝克的话,你应该有一张表,上面有你所有的产品,还有一个
type
栏,上面写的是什么类型的产品,否则你以后会有很多麻烦的。嗨,肯先生有芝士堡、索拉布里克利特、索拉卡格、索拉兰特恩。。等等等等。?这是一个表将所有产品放在一个表中,并为产品类型添加一列。如果您可以选择使用产品类型名称或产品类型ID.Prod.type.ID,则您需要为产品类型再添加一个表。亲爱的mayur,我的表名是solarbricklight、solarcharger、solarlantern、solarled、solarlightfan、solarlightingkits和table productname和中的productid@user3336480所以用表名代替t1,t2和t3,然后继续查询所有6个表。请记住更好地描述您的问题,以便人们更好地理解您的问题。
SELECT
FROM solarbricklight
WHERE ="productid AND productname" 
UNION ALL
SELECT 
FROM solarcharger
WHERE ="productid AND productname" 
UNION ALL
SELECT
FROM solarlantern
WHERE ="productid AND productname" 
UNION ALL
SELECT solarled
FROM olarlightfan
WHERE ="productid AND productname" 
UNION ALL
SELECT
FROM solarlightingkits
WHERE ="productid AND productname" 
ORDER BY productid;