我現在有除其他事項外持有的表:根據父ID選擇列值,而不需要PHP循環?
ID | pagetitle | parent
1 | Page 1 | 0
2 | Page 2 | 1
3 | Page 3 | 2
我想選擇所有的頁面,與他們的父母一起PAGETITLE。
目前,我通過PHP的結果循環,抓住pagetitles與家長的網頁,它看起來很醜陋:
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;
}
}
它的工作原理,但它是很老的代碼,我在
ID | pagetitle | parent-pagetitle
這可能使用內選擇:重新寫這個系統正的很多,並會喜歡漂亮這件事了一個調用數據庫返回的東西像這樣的流程?
編輯
我想指出,我不是PHP的原作者,我知道它寫得不好:對
也許你也應該使用mysql函數替換。 pdo,mysqli是比mysql函數更好的替代選擇 – ajreal
我使用ezSQL重寫,在新代碼中沒有mysq_ *函數,因爲我正在慢慢地重新編寫它。 –
但是,我不會使用PDO,但我並不打算使用ezSQL,我在一個4人團隊中工作,他們投了ezSQL,這並不可怕。 –