如何在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 |