我正在尝试使用MySQL表添加面包屑到我的网站,而此刻我很困难。抓取MySQL中的单个元素表
我有一个名为'includes'的表创建,它存储有关页面的类别,页面,子页面,标题和ref(url)的信息。类别,页和子页是从用户的页面传递
所有的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表,或者可能是一个完全不同的方法?
你组织这个表的想法是错误的。您需要创建一个分层表,使用上级条目标识作为下级条目的父级标识 – 2013-03-09 07:20:36