我有一个表(例如名称是“页面”),其中每行是另一行的孩子,如下所示(请参阅HTML部分):获取顶端父母的ID,不管孩子的ID
我想通过使用一个孩子的ID找到最顶层父母的ID。例如,我们得到了一个URL变量作为最底层的孩子ID:
http://www.website.com/page.php?p=6
然后,我们的网址变量存储到一个变量:
$p = $_GET['p'];
为了得到最顶层的一方的身份证,我不得不多次使用查询功能。例如:
if($result = $mysqli->query("SELECT * FROM page WHERE id='$p' LIMIT 1"))
{
while($row = $result->fetch_array())
{
$parent = $row["parent"];
}
}
if($result = $mysqli->query("SELECT * FROM page WHERE id='$parent' LIMIT 1"))
{
while($row = $result->fetch_array())
{
$parent1 = $row["parent"];
}
}
if($result = $mysqli->query("SELECT * FROM page WHERE id='$parent1' LIMIT 1"))
{
while($row = $result->fetch_array())
{
$parent2 = $row["parent"];
}
}
if($result = $mysqli->query("SELECT * FROM page WHERE id='$parent2' LIMIT 1"))
{
while($row = $result->fetch_array())
{
$id = $row["id"];
}
}
这种方式是无效的,因为如果我得到另一个URL变量作为高/低级别的另一个孩子的ID,这是不行的。
如何无论孩子的ID如何动态获取最高父母的ID?
使用适当[嵌套组(http://en.wikipedia.org/wiki/MPTT)如果您还不是。 – deceze
问题是我已经把太多的数据上传到表中了。此外,我已编码所有页面获取基于父母的ID – Bayu
的数据好吧,阅读此:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ – deceze