以下のように、各行が別の行の子であるテーブル(たとえば、名前は「ページ」)があります(HTMLセクションを参照)。
子のIDを使用して、最上位の親のIDを見つけたい。たとえば、一番下の子のIDとしてURL変数を取得します。
http://www.website.com/page.php?p=6
次に、URL変数を変数に格納します。
$p = $_GET['p'];
最上位の親のIDを取得するには、クエリ関数を数回使用する必要があります。例えば:
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"];
}
}
上位/下位レベルの別の子のIDとして別のURL変数を取得した場合、これは機能しないため、この方法は効果的ではありません。
子のIDに関係なく、最上位の親のIDを動的に取得するにはどうすればよいですか?