![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| EasyTask |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.7.2010 Репутация: нет Всего: нет |
Всем привет. Мне было нужно написать небольшой скриптик который генерировал бы из таблицы меню навигации, причем по некоторым элементам создавал под-элементы меню. Я долго думал как лучше это реализовать, о многомерных массивах и тд, но остановился на таком варианте:
Вопрос 1. Этот код имеет право на существование? Насколько корректно он написан? Даже поверхностно глядя на него я вижу ОЧЕНЬ уязвимое место, с которым пока что не знаю как бороться. Этим запросом мы получаем элемент таблицы в которой храниться заголовок категории i:
И вот тут самое интересное. Если я например создам три категории 1 = abc 2 = cba 3 = cab, а затем удалю "2", то скрипт не будет видеть категорию "3", т.к индекс цикла в пером шаге будет равен = 1, во втором = 2. Отсюда вопрос: Вопрос 2 Как преодолеть эту проблему? Со временем может образоваться очень много таких "дыр" в индексах и все будет выводиться не корректно. И последнее что мне нужно сделать - возможность сортировки меню. интуитивно понимаю что нужно что то вроде поля таблицы "Pos" которому вручную забивать значение и потом при выводе делать сортировку по нему. Но как? У меня нигде нет прямого перебора, в начале таблицы я беру элемент по конкретному ID. Единственное что я придумал это - использовать данный скрипт в панели управлением меню, в которой уже вручную проставлять параметр "Pos" и использовать таблицу получившуюся в результате в качестве меню сайта. Вопрос 3 Как можно произовольную сортировку элементов меню? Заранее всем большое спасибо. |
||||
|
|||||
| EasyTask |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.7.2010 Репутация: нет Всего: нет |
Похоже что сам нашел ответ на второй вопрос. Можно же создать массив с данными из таблицы, а после работать уже с ним. Насколько оправдан этот метод?
|
|||
|
||||
| enoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 30.6.2010 Где: Санкт-Петербург Репутация: нет Всего: 13 |
ttp://hphp.net/mysql_fetch_assoc mysql_fetch_assoc возвращает массив, содержащий одну запись таблицы. второй вызов функции возвращает вторую запись и т.д. Это сообщение отредактировал(а) enoff - 15.9.2010, 18:20 |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: нет Всего: 4 |
А вы уверены что вам стоит меню через базу данных делать?
Не проще ли xml или ini? Может и не проще, но нафиг базу грузить за зря |
|||
|
||||
| EasyTask |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.7.2010 Репутация: нет Всего: нет |
Такие технологии пока что мне не доступны
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |