私は現在、とりわけ保持するテーブルを持っています:
ID | pagetitle | parent
1 | Page 1 | 0
2 | Page 2 | 1
3 | Page 3 | 2
親のページタイトルとともに、すべてのページを選択しようとしています。
現在、私は PHP で結果をループして、親を持つページのページタイトルを取得していますが、かなり見苦しく見えます:
function showPageParent($pageid) {
do {
$result = mysql_query("SELECT parent FROM pages WHERE id=" . qt($pageid));
while($row = mysql_fetch_array($result)) {
$crumbs[] = $row['parent'];
$pageid1 = $row['parent'];
}
} while($pageid1!=0);
sort($crumbs);
foreach($crumbs as $crumb) {
$result = mysql_query("SELECT id,pagetitle FROM pages WHERE id=" . $crumb);
while($row = mysql_fetch_array($result)) {
$out .= $row['pagetitle'] . " > ";
}
}
if(count($crumbs) < 2) {
return showPageTitle($pageid);
} else {
return $out;
}
}
それは機能しますが、非常に古いコードです。私はこのシステムの多くを書き直している最中であり、データベースへの 1 回の呼び出しでこのようなものを返すようにしたいと考えています。
ID | pagetitle | parent-pagetitle
これは内部選択を使用して可能ですか?
編集
指摘しておきたいのですが、私は PHP の最初の作成者ではありません。