Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 2598
Информация:
Тема содержит 6 сообщения, была просмотрена 3608 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » MySQL
 Распечатать тему
Помогите составить запрос
Pisatel
Всем доброго времени суток. Суть просьбы в следующем: есть скрипт (каталог товаров), в нем идет выборка надкаталогов (путь к текущему каталогу), делается это таким вот безобразным способом:
Загрузить источник  GeSHi: PHP
  1. $cat_idput = $_GET['cat_id'];
  2. for ($i = 0; ; $i++) {
  3. $baseput = dbquery("SELECT cat_id, cat_name, cat_papa FROM ".DB_CAT." WHERE cat_id='".$cat_idput."'");
  4. if (dbrows($baseput)) {
  5. $rowput = dbarray($baseput);
  6. $catputs[] = "<a class='ch' href='".BASEDIR."cat.php?cat_id=".$rowput['cat_id']."'>".trim(stripinput($rowput['cat_name']))."</a>";
  7. if ($rowput['cat_papa'] == 0) { break; }
  8. $cat_idput = $rowput['cat_papa'];
  9. }
  10. }
Добавлено за 0.031 секунд, используя GeSHi 1.0.8.10
То есть, столбец cat_papa это и есть значение родительского каталога, как только значение равно 0, то это и есть главный кат. Как сделать выборку более грамотно? Этот гкод с циклом совсем не кошэрно...
З.ы. Код (функции бд) похож на фьюжн, но это не он
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
lucky
удалил :)
Изменил(а) lucky, 05.11.2015 09:51
 
Rush
cat_papa, надо запомнить)
 
Web
Pisatel
Это лишь самая незначительная няшная часть данного скрипта. Есть еще ячейка "foto_kmestu" и другие вкусности для любителей стеба. Но речь сейчас не об этом.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Razor
Есть у mysql одна из проблем, она не поддерживает иерархично-рекурсивные структуры, в пределах одной таблицы. На уровне запроса, вынужден огорчить, но этого реализовать не получится.
Можно немного извратиться и сделать что-то подобное, либо использовать более православные СУБД типа postgres. Ну либо использовать рекурсивные функи на php, для дальнейшей обработки данных, вот пример.
Sr. Software developer
plesk.com
 
Pisatel
Razor, благодарю за развернутый ответ. Похоже, придется оставить как есть, дабы не изобретать еще более сложные вЕлики.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: