Получение категорий из базы данных в HTML Optgroups и опции в php - PullRequest
2 голосов
/ 15 ноября 2011

Я пытаюсь получить мои категории из базы данных с их подкатегориями в теги <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 Ответ

1 голос
/ 15 ноября 2011

попробуйте использовать рекурсивную функцию, чтобы легко управлять своими категориями и помещать их в <optgroup> и <option>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...