как реализовать главную страницу каталога в виде...?

drizzle

Новичок
как реализовать главную страницу каталога в виде...?

Подскажите как реализовать технологию построения главной страницы каталога, как оно сделано на яндексе скажем.
Чтобы было ввиде:
Hi-Tech
компьютеры, интернет, мобильники
Работа
вакансии, трудоустройство
Учеба
вузы, школа, рефераты, науки
Справки
адреса, транспорт, словари

Есть таблица в которой храняться названия разделов (Hi-Tech,Работа,Учеба,Справки) и другая таблица в которой хратяться подразделы (компьютеры, интернет, мобильники) связанные с первой.
 

4m@t!c

Александр
2 Фанат
Вопрос по ходу. Для двухуровневого дерева лучше организовать две таблицы, либо одну? Я в плане быстродействия и дальнейших манипуляций над данными. я понимаю, что вопрос слишком абстрактный, но при прочих равных условиях?
 

drizzle

Новичок
Автор оригинала: Фанат
SELECT * from katalog1, katalog2 WHERE katalog2.kid=katalog1.id
Делал я так прежде чем спрашивать.
У меня получалось следующее:
Hi-Tech
компьютеры,
Hi-Tech
интернет,
Hi-Tech
мобильники
Работа
вакансии,
Работа
трудоустройство
и так далее....
Чтобы не быть голословным вот моя функция:
PHP:
function categories_announce()
 {
$this->sql_query="select * from $this->CATALOG_SECTIONS, $this->CATALOG_CATEGORIES where $this->CATALOG_SECTIONS.id=$this->CATALOG_CATEGORIES.section_id ";
$this->sql_execute();
while($array=mysql_fetch_array($this->sql_res)) {
echo "$array[section_name] |<br>";
echo "<a href=?category_id=$id class=menu>$array[category_name]</a> |<br>";
 }
}
 

Фанат

oncle terrible
Команда форума
drizzle
ну и кто тебя заставляет выводить поле из главного каталога по сто раз?
Тебе же надо выводить его только один раз?

оффтопик. меня поражают программисты, которые пишут объектно ориентированный код, но не знакомы с оператором условного перехода. никогда не перестанут поражать
 

Фанат

oncle terrible
Команда форума
если ты будешь рисовать такой каталог от руки - как ты это будешь делать?
 

drizzle

Новичок
Напишу название первого Раздела, потом перечислю все подразделы имеющие к нему отношение. За этим перейду к названию следующего раздела и повторю все сначала.
Но как это может быть реализованно в виде кода?
 

Фанат

oncle terrible
Команда форума
стоп.
вот у тебя список

Hi-Tech компьютеры,
Hi-Tech интернет,
Hi-Tech мобильники
Работа вакансии,
Работа трудоустройство

ты его выводишь по порядку.
при чем здесь "сначала то потом другое"?
у тебя и то и другое.
вот как ты будешь выводить такой список руками?
 

drizzle

Новичок
не понимаю я... :(

-~{}~ 13.01.05 20:28:

может должен быть вложенный цикл? так я пробовал. Вставлял вайл в вайл. В этом случае он проходит по первому разделу и его подразделам и показывает их как надо, НО дальше не идет.
 

4m@t!c

Александр
Фанат Мне кажется, что нужно начать с одного раздела, и двух подразделов... Но не смею мешать.
 

Фанат

oncle terrible
Команда форума
4m@t!c
а какая разница - сколько подразделов?

drizzle
ну неужели так трудно запомнить, что ты название раздела уже выводил, и больше его не выводить?
 

drizzle

Новичок
получается, что нужно делать 2 запроса к таблице? так что ли?
- чтобы взять название раздела и его id;
- чтобы по этому id выбрать названия подразделов;
я так тоже пробовал: вставлял цикл вайл в вайл. Но в этом случае он показывает нормально только данные по первому разделу и останавливается, не продолжая "верхний" цикл вайл.
 

vladax

Новичок
drizzle
ну неужели так трудно запомнить, что ты название раздела уже выводил, и больше его не выводить?
щас погоди, разберетесь с условным переходом, дальше будешь учить расставлять запятые в подразделах $this->CATALOG_CATEGORIES :)
 

drizzle

Новичок
Автор оригинала: Фанат
ну неужели так трудно запомнить, что ты название раздела уже выводил, и больше его не выводить?
Смотри. Запрос один. И выводится он всем скопом в цикле. Я не знаю способа, вывести название раздела однажды, а подразделы в полном объеме. Затем и спрашиваю тут, что НЕЗНАЮ! :( :( :( :(
 

Фанат

oncle terrible
Команда форума
ВЛОЖЕННЫЙ ЦИКЛ-то тут при чем???
есть список
Hi-Tech компьютеры,
Hi-Tech интернет,
Hi-Tech мобильники
Работа вакансии,
Работа трудоустройство
в разделе hi tech ТРИ пункта.
нафига выводить ДВА?

-~{}~ 13.01.05 20:46:

drizzle
давай по шагам.
переменной значение можешь присвоить?
$kat=$array['section_name'];
если этот код не вызывает у тебя затруднений - пойдем дальше.

-~{}~ 13.01.05 20:48:

идем дальше.
какие проблемы с кодом
if ($kat<>$array['section_name']) echo $array['section_name']." |<br>";

какая из его составляющих представляет проблему?
 

drizzle

Новичок
То есть в виде кода это будет выглядеть так:
PHP:
while($array=mysql_fetch_array($this->sql_res)) {
if ($kat<>$array['section_name']) {
echo $array['section_name']." |<br>"; 
$kat=$array['section_name'];
}
echo "<a href=?category_id=$id class=menu>$array[category_name]</a> |<br>";
}
И работает это так: если на следующем шаге название Раздела все еще совпадает с предыдущим шагом, то печатается название подраздела (category_name). Я правильно понял?
 
Сверху