我正在开发一个 CMS 系统,它接收这样的 url:
/parent1/parent2/child/
现在很容易只检查 child ,但在我看来,您还应该检查 parent 是否正确以及顺序是否正确。问题是我不确定如何执行此操作。
我正在使用 mysql。这是该表的外观:
CREATE TABLE IF NOT EXISTS `pages` (
`id` int(11) NOT NULL auto_increment,
`parent` int(11) NOT NULL default '0',
`title` varchar(255) NOT NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
父字段保留其他页面 ID,这些 ID 将在父字段中用作父字段。
最佳答案
最好是在一个查询中检索完整的表并构建一个嵌套数组。有了 php 中的整个树结构,检查它们是否正确就容易多了。
在这个博客上有关于只有一个查询的多级菜单格式的信息:http://crisp.tweakblogs.net/blog/317/formatting-a-multi-level-menu-using-only-one-query.html
它背后的想法是你在 php 中递归地构建菜单。如果您能够更改数据库结构,您还可以查看 MPTT,即嵌套集。使用这种机制,可以更容易地遵循树中的父/子关系。缺点是插入或更新节点时 MPTT 速度较慢。更多信息:http://articles.sitepoint.com/article/hierarchical-data-database
关于php - 递归检查数据库中 child 的 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021776/