我正在尝试使用 MySQL 表将面包屑添加到我的网站,但目前我遇到了困难。
我创建了一个名为“includes”的表,其中存储了有关页面的类别、页面、子页面、标题和 ref (url) 的信息。Category、Page 和 Subpage 都是从用户所在页面传递的 php 参数
我的桌子是这样布置的:
|----------------------------------------------------------------|
| ID | Category | Page | Subpage | Title | Ref |
|----------------------------------------------------------------|
| 0 | | | | Home | ... |
| 1 | Software | | | Software | ... |
| 2 | Software | Desktop | | Desktop Software | ... |
| 3 | Software | Mobile | | Mobile Software | ... |
| 4 | Software | Desktop | Blah | Blah Blah | ... |
| ...
|----------------------------------------------------------------|
我正在尝试做的是进行查询,该查询将仅返回所需的步骤返回首页以获取面包屑。
换句话说,如果用户在“example.com/software/desktop/blah”上,查询将返回第 0、1、2 和 4 行。或者如果我在 /software/mobile 上,它只会返回行0,1 和 3。
我目前的尝试如下:
SELECT * FROM `includes` WHERE
`category` IS NULL AND `page` IS NULL AND `subpage` IS NULL OR
`category`='$category' AND `page` IS NULL AND `subpage` IS NULL OR
`category`='$category' AND `page`='$page' AND `subpage` IS NULL OR
`category`='$category' AND `page`='$page' AND `subpage`='$subpage'
这不仅不起作用,而且看起来比它应该的更复杂。
我可能过于复杂了,或者可能只是做了一个完全错误的方法,这就是我转向这里的原因。
有人对此有可能的解决方案吗?我应该查看更复杂的查询吗?(诚然,SQL 不是我的强项)或者我应该查看一个新的 SQL 表,或者可能是一个完全不同的方法?