Вывод тем и категорий

Разгильдяй

Новичок
Вывод тем и категорий

Существует две таблицы:
PHP:
categories: 
1. cat_id 
2. cat_title 
3. cat_order 


forums: 
1. forum_id 
2. cat_id 
3. forum_name
Как сделать вывод такого вида:

Категория1
форум1
форум2
форум3

Категория2
форум1
форум2
форум3
 

yugene

Отошел от дел
примерно раз в неделю на этом форуме задают этот вопрос... слово в слово
 

_RVK_

Новичок
Могу подсказать запрос. Это если одним запросом:
PHP:
SELECT * FROM categories as t1, forums as t2 WHERE t1.cat_id=t2.cat_id
Вывод в цикле.
 

Разгильдяй

Новичок
Автор оригинала: _RVK_
Могу подсказать запрос. Это если одним запросом:
PHP:
SELECT * FROM categories as t1, forums as t2 WHERE t1.cat_id=t2.cat_id
Вывод в цикле.
это уже давно сделал. Но выводит для каждого форума категорию :(
 

_RVK_

Новичок
кто выводит? он сам? мамачка! они живые!

Это ты выводишь. Смотри где ошибка в алгоритме. На худой конец, если не разберешься покажи код сюда, мы поможем. Или все же "да" на мой первый вопрос?
 

Разгильдяй

Новичок
PHP:
$db->query("SELECT * FROM categories AS cat, forums AS forums WHERE cat.cat_id = forums.cat_id;");
           
while($row = $db->fetchRow())
{
     $this->categorie[] = $row;
}	

echo '<table align="center" width="100%" border="1">';
		
foreach($this->categorie as $key => $value)
{	
    echo '<tr>';
			
    foreach($value as $key => $val)
   {
      echo '<td>' . $val . '</td>';
   }
			
   echo '</tr>';
}
		
echo '</table>';
 

_RVK_

Новичок
Разгильдяй
Зачем ты запихивашь все в массив? Выводи сразу.
Или хотя бы не пихай туда все.
 

Разгильдяй

Новичок
Подскажи пожалуйста, как сделать вывод такого вида:

Категория1
форум1
форум2
форум3

Категория2
форум1
форум2
форум3

если можно пример или идею. тону
 

_RVK_

Новичок
hint. выведи на экран print_r - ом все данные, и посмотри их структуру. когда ты это увидишь обрати внимание на то, какие данные меняются при смене категории. заведи переменную и в цикле проверяй относится ли текущий форум к той же категории или уже к другой. если к другой то выводи и меняй значение переменной. если к той же то выводи только форум.

-~{}~ 08.04.05 23:13:

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

Разгильдяй

Новичок
Автор оригинала: _RVK_
заведи переменную и в цикле проверяй относится ли текущий форум к той же категории или уже к другой. если к другой то выводи и меняй значение переменной. если к той же то выводи только форум.
if($cat_id < $max)
{
новая категория
$max = $cat_id;
}
else
{
форум предыдушей категории
}

ты про это?
 

_RVK_

Новичок
не совсем. прчем здесь больше/меньше? а если сортировака не по id? сравнивай просто на равенстро.
 

Разгильдяй

Новичок
Автор оригинала: _RVK_
а если сортировака не по id?
Тогда в запросе специально укажу чтобы по айди была.
Начиная с первого айди читаю категории и форумы. Если айди больше, значит новая категория, если такой же, то таже категория.


Ты говорил про тоже самое, только если айди равен предыдущему, тогда одна категория?
 

_RVK_

Новичок
Ты говорил про тоже самое, только если айди равен предыдущему, тогда одна категория?
Да, а если отличается то уже другая. И не важно больше или меньше.
 

Разгильдяй

Новичок
Автор оригинала: _RVK_
Да, а если отличается то уже другая. И не важно больше или меньше.
большое спасибо, все понял

-~{}~ 08.04.05 23:56:

А как потом это все еще в шаблон засунуть?Не хочу классы захламлять HTML-кодом. Использую Smarty.
 

_RVK_

Новичок
тот же цикл только в смарти :)

-~{}~ 09.04.05 00:34:

Разгильдяй
Не рановато ли ты взялся за ООП и Smarty? Я то не против, но зачем делать то чего ты не понимаешь?
 
Сверху