Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Вывод категорий в PHP

тут делаю плагин галереи, и стал вопрос

как зделать при редактировании категории, родительская подкатегория была выбрана у редактированой категории

нашол кусок кода для етого дела, но как не кратил не могу выделить категорию, редактированой категории,

и еще чтобы в списке категорий не отображалась редактированная категория


function mytree($mysecid,$mysqla,$dots,$clevel) {
$result22=os_db_query($mysqla);
while ($row = os_db_fetch_array($result22)) {
    $output = '<option value="'.$row['aid'].'">'.$dots.stripslashes($row['name']).'</option>';
    echo $output;
$ddsqlb = "select aid, p_aid, name from ".TABLE_ALBUMS." where p_aid = '$row' order by name asc";
if ($clevel < 20) {
  $output = mytree($row['aid'],$ddsqlb,"-".$dots,$clevel+1);
}
}
}
$ddsqla = "select aid, p_aid, name from ".TABLE_ALBUMS." where p_aid = '0' order by name asc";
####################################################
echo '<select name="p_aid" size="1">';
mytree(0,$ddsqla,"-",0,0);
echo '</select>';



как зделать при редактировании категории, родительская подкатегория была выбрана у редактированой категории


Понять бы это...


aid - ИД категории

p_aid - ид родителской категории

при редактировании категории с aid если есть у нее p_aid в селекте была бы выбрана категория p_aid = aid (родителская)


Например, так


$ddsqla = "select aid,  name from ".TABLE_ALBUMS." where p_aid IN (select p_aid from ".TABLE_ALBUMS." where aid = '$curr_aid') order by name asc";


не то что нужно, зделал скрины


Примерно так:

function mytree($mysecid,$mysqla,$dots,$clevel) {
  global $currcat;
  $result22=os_db_query($mysqla);
  while ($row = os_db_fetch_array($result22)) {
    $output = '<option value="'.$row['aid'].'"'.($row['aid']==$currcat ? ' SELECTED' : '').' >'.$dots.stripslashes($row['name']).'</option>';
    echo $output;
  $ddsqlb = "select aid, p_aid, name from ".TABLE_ALBUMS." where p_aid = '$row' order by name asc";
  if ($clevel < 20) {
    $output = mytree($row['aid'],$ddsqlb,"-".$dots,$clevel+1);
  }
  }
}
$ddsqla = "select aid, p_aid, name from ".TABLE_ALBUMS." where p_aid = '0' order by name asc";
####################################################
echo '<select name="p_aid" size="1">';
mytree(0,$ddsqla,"-",0,0);
echo '</select>';


А вообще код явно нерациональный и затратный в плане запросов.
Кто-то написал лет десять назад такое уродство, и с тех пор, увы, тиражировано во многих местах.


ничего не вышло,

на щет кода может вы и правы, но вот только я не програмер,

может подскажите какой небуть рациональный код для етого дела, а то плагин галереи уже почти готов вот только запарка с етим и еще нужно мультиязычность доделать но думаю ето попробую осилить


Ну да, смешно))


Я тоже не понимаю как этот кусок кода может что то вывести из бд... Может кто нибудь пояснит?


Источник



Copyright ShopOS