2
我有以下變量從我的數據庫中獲取值。這些變量存儲相同的分層列表(格式)和兒童值的分級列表的父值:MySQL/PHP/HTML如何在分層下拉菜單中插入子項?
$getSolos = $wpdb->get_results($wpdb->prepare("
SELECT * FROM wp_terms p
LEFT OUTER JOIN wp_term_taxonomy t ON p.term_id = t.term_id
WHERE t.taxonomy = 'format'
AND t.parent = 0
AND t.term_id NOT IN (SELECT parent FROM wp_term_taxonomy WHERE taxonomy = 'format' AND parent > 0)
ORDER BY t.parent
"));
$getParents = $wpdb->get_results($wpdb->prepare("
SELECT * FROM wp_terms p
LEFT OUTER JOIN wp_term_taxonomy t ON p.term_id = t.term_id
WHERE t.taxonomy = 'format'
AND t.parent = 0
AND t.term_id IN (SELECT parent FROM wp_term_taxonomy WHERE taxonomy = 'format' AND parent > 0)
"));
雖然上面不一定重要,下面是我的數據庫看起來是這樣的:
term_id name slug term_id1 parent
1 Entry Form entry-form 1 0
2 Facebook facebook 2 0
3 Entry Form entry-form-facebook 3 2
4 Twitter twitter 4 0
5 Page page-facebook 5 2
所以從邏輯上講,我的對象數組包含:
$getParents->parent = 2 // contains only IDs of parent formats
$getSolos->term_id = 1,5 // contains only IDs of formats that have no children
的想法是來填充這些格式下拉菜單的形式,與父母格式包含他們孩子的optgroups。到目前爲止,我已經取得了以下情況:
<form>
Format: <select name="format">
<option value="empty"></option>
<?php
foreach ($getSolos as $solo) {
echo "<option value='".$solo->name."' ".$selected.">".$indent.$solo->name."</option>";
}
foreach ($getParents as $parent) {
echo "<optgroup label='".$parent->name."'>";
// How do I get the children in here?
echo "</optgroup>";
}
?>
</select>
</form>
以上輸出:
Entry Form
Twitter
Facebook // Bold as it is an optgroup header
輸出應該是:
Entry Form
Twitter
Facebook // Bold as it is an optgroup header
Entry Form
Page
因此,這裏是我的問題: 1)如何做我讓孩子出現在父optgroup中?
http://stackoverflow.com/ q/1519272 –
我試過手動放在子查詢中,也沒有得到任何結果。 – Sweepster