Кроплю над страницей вывода пунктов меню навигации.
Задача вроде бы решена, но, совсем не рационально
![Недовольство, огорчение Недовольство, огорчение](./im/emoticons/dry.gif)
есть 3 таблицы
menu
---------------------
num | part_art | id
num - порядковый номер пункта меню для вывода на сайте
part_art - хранит тип страницы на которую ведёт пункт меню (1/0 - раздел/статья)
id - идентификатор статья или раздела. Равен id_article из таблицы статей для статьи либо id_artpage из таблицы разделов, соответственно для раздела.
aricle
-------------------
id_article | name
artpage
---------------------
id_artpage | name
Результатом работы скрипта должна стать -
таблица - порядок отображения пунктов меню на сайте
1 РазделN
2 СтатьяN
3 СтатьяС
4 РазделA
...
Моё решение:
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?
- //Соединяемся с бд
- require_once($_SERVER["DOCUMENT_ROOT"]."/admin/config.php");
- //Количество пунктов меню которые разрешено вывести $pos_number
- $pos_number = 5;
- //Извлекаем всё из таблицы menu
- $query= "Select from menu";
- $one= mysql_query($query);
- if (!$one)
- {
- echo mysql_error();
- }
- else
- {
- //Если извлечение успешно, то помещаем результат в массив
- $menu = mysql_fetch_assoc($one);
- }
- ?>
- //Таблица вывода значений пунктов меню
- <table>
- <?
- //Начало цикла вывода пунктов меню, количество проходов равно количеству пунктов меню в переменной $pos_number
- for ($i=1; $i<= $pos_number; $i++)
- {
- //Проверяем стратус страницы на которую ведёт пункт меню. Если Раздел/Статья, то извлекаем данные из таблицы разделов/статей
- //Если раздел, выводим в строку порядковый номер пункта меню и название радела
- if($menu['part_art']=1)
- {
- $query = sptintf("Select name from artpage where id_artpage = %d", $menu['id']);
- $zapros = mysql_query($query);
- if(!$zapros) puterror (mysql_error());
- $menu_name = mysql_fetch_assoc($zapros);
- echo "<td>".$menu['num']."</td><td>".$menu_name['name']."</td></tr>";
- }
- //Если статья, выводим в строку порядковый номер пункта меню и название статьи
- else
- {
- $query = sptintf("Select name from articles where id_article = %d", $menu['id']);
- $zapros = mysql_query($query);
- if(!$zapros) puterror (mysql_error());
- $menu_name = mysql_fetch_assoc($zapros);
- echo "<td>".$menu['num']."</td><td>".$menu_name['name']."</td></tr>";
- }
- }
- </table>
- ?>