如何在PHP中使用多个搜索条件查找相关库存?

如何在PHP中使用多个搜索条件查找相关库存?,php,mysql,Php,Mysql,是否有任何方法可以使用php+mysql进行多条件搜索? 我在一个网站上看到了它,我想为自己做一些类似的东西。 所以我有两张桌子 表1-“书籍”(标题、作者、书号) 表2-“说明”(Bookid,说明) 每本书都可以有用户想要的描述。 表“书籍” 书名作者BookID 噩梦(…)汤姆B.AAA 好极了(…)吉姆·C·阿伯 幽灵之夜(…)艾米·D·亚克 保姆(…)基蒂·D·阿德 你好,世界(…)皮特·P·AAE 汉尼拔(…)黄油H.AAF 及 表“说明” 图书ID描述相关性 AAA惊悚片


是否有任何方法可以使用php+mysql进行多条件搜索?
我在一个网站上看到了它,我想为自己做一些类似的东西。

所以我有两张桌子
表1-“书籍”(标题、作者、书号)
表2-“说明”(Bookid,说明)

每本书都可以有用户想要的描述。

表“书籍”
书名作者BookID
噩梦(…)汤姆B.AAA
好极了(…)吉姆·C·阿伯
幽灵之夜(…)艾米·D·亚克
保姆(…)基蒂·D·阿德
你好,世界(…)皮特·P·AAE
汉尼拔(…)黄油H.AAF



表“说明”
图书ID描述相关性
AAA惊悚片0
AAA罪行0
AAA侦探0
AAB地理0
AAB旅行社0
AAC惊悚片0
AAD喜剧0
AAD系列0
AAE编程0
计算机科学0
AAF惊悚片0
AAF犯罪0

我已经做了插入数据部分,实际上对我来说并不难,但是当涉及到搜索部分时,事情变得比我想象的要复杂得多。

我将使用的表单与我的“目标”网站使用的模型完全相同,这里我使用()表示html的选择表单,使用[]表示普通的输入表单

[]
(和/或)[]
(和/或)[]
(和/或)[]

用户可以填写1-4个标准,例如“thriller”(和“Crime”),MySQL会找到符合这些描述的所有描述,在我的例子中,这些信息是:

AAA惊悚片0
AAA罪行0
AAC惊悚片0
AAF惊悚片0
AAF犯罪0

下一步,计算机应将找到的ID分类,并将结果排序为:

已验证AAA 2标准
已验证AAF 2标准
已验证AAC 1标准

然后,我希望它在浏览器上回显/打印这些信息:

一,。噩梦(…)汤姆B.AAA
描述:惊悚片,犯罪

二,。汉尼拔(…)黄油H.AAF
描述:惊悚片,犯罪

三,。幽灵之夜(…)艾米·D·亚克
描述:惊悚片


我的主要问题是分类和排序部分,我不知道如何在SQL中将代码插入到另一个代码中。
我试过分组(第一次),但没有成功。
事实上,经过几天的失败尝试,我开始思考我的数据结构是否是真正的问题。。。



感谢您的帮助和关注。

使用分组方式是一个好主意,但您可能需要添加一些类别来帮助您进行排序

例如:

架构(MySQL v5.7)


查询#1

SELECT b.title, COUNT(c.description) AS cnt
FROM book b
LEFT JOIN cat c
ON b.id = c.BookID
WHERE c.Description IN ('Thriller', 'Crime')
GROUP BY b.title
ORDER BY cnt DESC;
输出

| title      | cnt |
| ---------- | --- |
| Nightmare  | 2   |
| Hannibal   | 2   |
| GhostNight | 1   |

| title      | cnt |
| ---------- | --- |
| Nightmare  | 2   |
| Hannibal   | 2   |
| GhostNight | 1   |