|
|
|
| Подскажите с решением такой задачи:
есть категории и подкатегории со структурой таблицы в БД id - name - parent (категория родитель, если она равна 0, это категория, если нет - подкатегория). Добавление категории сделал, а вот задачу по модулю редактирования уже созданных категорий решить не могу.
Как сделать чтобы при редакировании категории выводилась в выпадающем списке категория родитель с элементом selected, т.е. чтобы видно было кто родитель подкатегории.
Первую часть кода написал, если родителя нет:
while ($myrow = mysql_fetch_assoc($result)) {
if ($myrow['parent'] == 0) {
$cat .='<option value="'. $myrow['id_cat'] .'">'. $myrow['name'] .'</option>';
} else {
а вто здесь уже проблема
}
|
| |
|
|
|
|
|
|
|
для: allforweb
(07.04.2011 в 00:53)
| | Можно воспользоваться рекурсивной функцией
<?php
// Выпадающий список каталогов
function get_catalog($id_cat = 0, $indent = "")
{
// Объявляем имя таблицы глобальным
global $tbl;
// Предотвращаем SQL-инъекцию
$id_cat = intval($id_cat);
// Формируем список
$query = "SELECT * FROM $tbl_cat
WHERE id_par = $id_cat
ORDER BY name";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error());
if(empty($id_cat)) $subcat[0] = "Не выбрано";
if(mysql_num_rows($cat))
{
while($catalog = mysql_fetch_array($cat))
{
$subcat[$catalog['id_cat']] = " $indent- $catalog[name]";
$arr = get_catalog($catalog['id_cat'], " $indent");
if(!empty($arr)) $subcat = $subcat + $arr;
}
}
return $subcat;
}
?>
| Функция возвращает массив с ключами id_cat и именами разделов и подразделов с отступами, которые соответствуют их уровню вложенности. | |
|
|
|