Доброго времени суток !
Суть проблемы заключается в следующем :
Переделал под себя доску объявлений , сделал чтобы можно было добавлять объявление к нескольким подкатегориям , даже если они находятся в разных главных категориях , продолбался со всеми запросами вроде всё получалось , но ... возник такой вопрос , суть в том что при выборе главной категории открывается список подкатегорий и ниже списка идёт список объявлений которые принадлежат ко всем тем подкатегориям , которые в данной главной категории , вот теперь у меня получилось что каждое объявление которое относится к нескольким категориям этого раздела , повторяется столько раз , ко скольким категориям назначаешь его при добавлении , дальше когда выбираешь подкатегорию список отфильтровывается и остаются только те которые принадлежат конкретно данной подкатегориию
С такой примерно заморочкой на главной странице , у меня получилось решить переделал выборки из базы и циклы и всё получилось, В принципе запросов пришлось доработать не мало и это осталась одна заморочка с которой я уже пару дней воюю .
Вот он код.
PHP:
скопировать код в буфер обмена
$sqltotal = "select ".$myprefix."_ads_ads.* , ".$myprefix."_ads_abr.* from ".$myprefix."_ads_ads , ".$myprefix."_ads_abr where "; if ($id_catg != "") { $categorystring = getchildcategories($id_catg); $categoryarray = explode("_",$categorystring); if (sizeof($categoryarray) - 1 > 0 ) { $sqltotal .= " ("; } for ($i = 0;$i<=sizeof($categoryarray)-2;$i++) { $sqltotal .= " ".$myprefix."_ads_abr.id_catg='".$categoryarray[$i]."' "; if ($i != sizeof($categoryarray)-2 ) { $sqltotal .= " or "; } } if (sizeof($categoryarray) - 1 > 0 ) { $sqltotal .= " or ".$myprefix."_ads_abr.id_catg='".$id_catg."') and "; } else { $sqltotal .= " ".$myprefix."_ads_abr.id_catg='".$id_catg."' and "; } } $sqltotal .= " ".$myprefix."_ads_abr.id_ads = ".$myprefix."_ads_ads.id_ads and "; $applylanguage = sqlapplylanguage(); $sqltotal .= $applylanguage."and"; $sqltotal .= " active = 1 order by title ASC";
Сам запрос к БД настроить получилось , сначало вобще было ужас , всё перемножалось , в непонятные категории распихивалось , теперь только вот осталось решить с повтором , в принципе по сути так и получается , что одно объявление относясь к нескольким подкатегориям , получается как бы копируется циклом, так как имеет несколько категорий , но в базе оно одно и с подкатегориями завязано через дополнительную таблицу
Заранее благодарен за советы ! ... Я ещё только начинающий . Потому рад любым подсказкам.
|