Получение категорий из базы данных в HTML Optgroups и опции в php
Я пытаюсь получить мои категории из базы данных с их подкатегориями в <optgroup>
а также <option>
теги и я хочу, чтобы родители <optgroup>
теги, но я не могу пройти через все уровни, я только до уровня 2, и я не могу пройти слишком далеко!
Это то, что я получил так далеко:
$con = mysql_connect($dbHost, $dbUsername, $dbPassword);
if (!$con) {
echo "Cannot connect to the database: " . mysql_error();
exit;
}
$db_selected = mysql_select_db($dbName, $con);
if (!$db_selected) {
echo "Can\'t use $dbName : " . mysql_error();
exit;
}
$query = "SELECT * FROM categories";
$result = mysql_query($query);
$pidHolder = null; // To take the current parent pid in the loop
$optOpen = false; // Check that optgroup tag is opened
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
if ($line['parent_id'] == 0 && $line['cat_id'] == 0)
continue;
if ($line['parent_id'] == 0) {
if ($optOpen) {
echo '</optgroup>';
$optOpen = false;
}
echo "<optgroup value=" . $line['cat_name'] . "\" label=\"" . $line['cat_name'] . "\">";
$pidHolder = $line['cat_id'];
$optOpen = true;
continue;
} else if (isset($pidHolder) && $pidHolder == $line['parent_id']) {
echo '<option value="' . $line['cat_id'] . '">' . $line['cat_name'] . '</option>\n';
continue;
}
}
mysql_close();
В чем проблема с моим кодом? и что мне нужно, чтобы перебрать остальных детей?
1 ответ
Решение
Попробуйте использовать рекурсивную функцию, чтобы легко управлять своими категориями и помещать их в <optgroup>
а также <option>
,