Конструкция вывода меню

Segey
На сайте с 23.08.2005
Offline
404
463

Есть сайт, там разделы и подразделы. Когда входишь в раздел, то нужно из урла взять название подраздела и запрос в базу сделать. Урл беру:

$url = $_SERVER['REQUEST_URI'];

$url = explode("/",$url);
$base_name = $url[1];
@$sub_cat_name = $url[2];

Но проблема в том, что разделов много и только после некоторых нужно выполнять этот самый запрос в базу. А на некоторых просто ненужно и получается запрос с ошибкой. Есть еще такое определение вывода заголовка для подраздела:

if($base_name=="a"):

echo '<div class="title">Раздел 1</div><ul>';
elseif($base_name=="f"):
echo '<div class="title">Раздел 2</div><ul>';
elseif($base_name=="b"):
echo '<div class="title">Раздел 3</div><ul>';
elseif($base_name=="c"):
echo '<div class="title">Раздел 4</div><ul>';
elseif($base_name=="d"):
echo '<div class="title">Раздел 5</div><ul>';
endif;

Как можно добавить в эту констирукцию запрос в БД во всех случаях т.е. если совпало хоть одно из этих условий, то выполняется код запроса и вывода подкатегорий, но не добавлять его несколько после каждой проверки?

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
unknown
На сайте с 10.06.2006
Offline
94
#1

Ты что названия разделов в коде хранишь? зная что "разделов много" ИМХО глупо

----

Ну так и смотри когда $base_name не равно ничему


if ($base_name != null) { ТВОЙ запрос к бд};

или echo замени на переменную например $title_kat и вконце её выводи и сравнивай тогда не по $base_name а по $title_kat.


if ($title_kat != null) {echo $title_kat; ТВОЙ запрос к бд};
bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#2

Заведи массив со всеми значениями, при которых нужно обращаться к базе данных, и проверяй наличие $base_name в этом массиве.

bondarevpipes.com (http://ru.bondarevpipes.com/)
Segey
На сайте с 23.08.2005
Offline
404
#3
unknown:
зная что "разделов много" ИМХО глупо

Они постепенно разрослись, даже не заметил как-то...

Пожалуй занесу их в БД, все равно к ней почти всегда обращаться.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий