Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Генерация меню с подпунктами. / 6 сообщений из 6, страница 1 из 1
16.01.2005, 23:23
    #32866849
upper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация меню с подпунктами.
PHP MySQL.

Я сделал меню которое генерится пошагово(по клику) ГОД-Специальности-Люди.
Но никак не могу сообразить как сделать такое меню
ГОД-1
-Специальность-1
-Специальность-2
ГОД-2
-Специальность-1
-Специальность-2
-Специальность-3

И ГОД и Специальности храняться в одной таблице.

Я делаю выборку Годов и Специальностей а потом по циклу все это вывожу.
Но получаю:

ГОД-1
-Специальность-1
ГОД-1
-Специальность-2
ГОД-2
-Специальность-1
ГОД-2
-Специальность-2
ГОД-2
-Специальность-3

Группировка по Годам дает:

ГОД-1
-Специальность-1
ГОД-2
-Специальность-1
**************

Подскажите направление. Копать sql запрос или цикл вывода? Или еще что то??
...
Рейтинг: 0 / 0
17.01.2005, 10:08
    #32867118
v-zender
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация меню с подпунктами.
И ГОД и Специальности храняться в одной таблице.

Подскажите направление. Копать sql запрос или цикл вывода? Или еще что то??

Раз так, лучше всего смотреть цикл. А запросе записи должны быть сгруппированы по годам. В твоем примере наверное так уже сделано.

Вводишь переменную $current_year

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$current_year = "";
цикл(...)
{
  // каждое новое значение года выводится только  1  раз
  if($current_year != current_year_from_query)
  {
     создаем пункт меню current_year_from_query
     $current_year = current_year_from_query;
  }
}
...
Рейтинг: 0 / 0
21.01.2005, 17:58
    #32877957
upper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация меню с подпунктами.
че-то я так ничего и не надумал.

у меня логика такая.
Делаем запрос сортированный по годам.
Результат запроса - ассоциированный масив

year - spec
1992 - геолог
1992 - топограф
1993 - геолог

Теперь нужно вывести все year а для него все spec при этом нужно сгруппировать по year. Я не могу группировать в sql запросе потому, что резульрат окажется таким

year - spec
1992 - геолог
1993 - геолог

if ($myrow = mysql_fetch_array($result))
do
{
echo year;
а теперь нужно печатать специальности. но откуда взять отправную точку не понимаю.
}
while ($myrow = mysql_fetch_array($result));

в голову ничего не лезет :(
...
Рейтинг: 0 / 0
22.01.2005, 12:07
    #32878422
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация меню с подпунктами.
Код: plaintext
1.
2.
3.
4.
5.
6.
$cur_year = '';
while ($r = mysql_fetch_assoc(...)) {
   if ($cur_year != $r['year']) {
       echo $r['year']."<br>";
   }
   echo $r['spec']."<br>";
}
...
Рейтинг: 0 / 0
22.01.2005, 12:09
    #32878424
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация меню с подпунктами.
Упс, ошибочка вышла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
$cur_year = '';
while ($r = mysql_fetch_assoc(...)) {
   if ($cur_year != $r['year']) {
       echo $r['year']."<br>";
       $cur_year = $r['year']; // <<<<
   }
   echo $r['spec']."<br>";
}
...
Рейтинг: 0 / 0
24.01.2005, 13:20
    #32879913
upper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерация меню с подпунктами.
Спасибо :)
Особенно Макс М.
Ты как всегда меня выручил. Я тебе очень признателен :)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Генерация меню с подпунктами. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]