Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Категория форума -> фоурмы
Форумы портала PHP.SU » » Вопросы новичков » Категория форума -> фоурмы

Страниц (1): [1]
 

1. maragon - 29 Июня, 2015 - 19:39:03 - перейти к сообщению
Мучался, вроде просто - а не туда, ни сюда.
Две таблицы: Категория форума / Форумы
Нужно вывести втаком порядке:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Название категории
  2. - Форумы
  3. Название второй категории
  4. - Форумы


CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. Таблица `forum`:
  3. `id` (int) , `category`(int) , `name` (varchar)
  4. 1|Форум 1|Первый форум
  5. 2|Форум 2|Второй форум
  6.  


Куда копать? Однако
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. Таблица `forum_category`:
  3. `id` (int) ,  `name` (varchar)
  4. 1|Основные форумы
  5. 2|информационные форумы
  6.  


Пробовал так, но не то.. Группировка не помогает.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT forum.name, forum_category.name AS cat_name FROM forum
  2. LEFT JOIN forum_category.category ON forum_category.id = forum.category
  3. GROUP BY forum.category
  4. ORDER BY forum.id ASC;
2. maragon - 30 Июня, 2015 - 00:11:54 - перейти к сообщению
Сейчас вывожу так, но это не есть хорошо Однако
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = $db->super_query("SELECT `".PREFIX."_forum_categories`.`id`,
  3.                                                                 `".PREFIX."_forum_categories`.`name`
  4.                                                                 FROM `".PREFIX."_forum_categories`
  5.                                                                 ", 1);
  6. if($sql) {
  7. foreach($sql As $row){
  8.  
  9. $tpl->load_template('forum/category.tpl');
  10. $tpl->set('{name}', $row['name']);
  11. $tpl->compile('content');
  12.  
  13. $sql = $db->super_query("SELECT `".PREFIX."_forum`.`id`,
  14.                                                                 `".PREFIX."_forum`.`name`,
  15.                                                                 `".PREFIX."_forum`.`description`,
  16.                                                                 `".PREFIX."_forum`.`count_messages`,
  17.                                                                 `".PREFIX."_forum`.`count_topics`,
  18.                                                                 `".PREFIX."_forum`.`forum_icon`
  19.                                                 FROM `".PREFIX."_forum`
  20.                                                 WHERE `".PREFIX."_forum`.`category` = '".$row['id']."'
  21.                                                 ", 1);
  22. if($sql){
  23. $tpl->load_template('forum/forum.tpl');
  24. foreach($sql AS $row){
  25. $tpl->set('{forum_id}', $row['id']);
  26. $tpl->set('{forum_name}', $row['name']);
  27. $tpl->set('{forum_description}', $row['description']);
  28. $tpl->set('{count_messages}', $row['count_messages']);
  29. $tpl->set('{count_topics}', $row['count_topics']);
  30. if(file_exists(ROOT_DIR."/templates/".$config['temp']."/images/forum/".$row['forum_icon'])){
  31. $tpl->set('{forum_icon}', "/templates/".$config['temp']."/images/forum/".$row['forum_icon']);
  32. } else {
  33. $tpl->set('{forum_icon}', "/templates/".$config['temp']."/images/forum/no.png");
  34. }
  35.  
  36. $tpl->compile('content');
  37. }
  38. }
  39. }
  40. } else { msgbox('Ошибка', 'Форумы не найдены', 'Обратитесь к данной странице позже', 'info'); }
  41.  
3. Viper - 30 Июня, 2015 - 10:08:53 - перейти к сообщению
Я такое на php делал, а не средствами БД. У вас есть связь по ID между форумами и подфорумами. Выбираете все форумы, потом все подфорумы и в цикле создаете новый массив связав по ID.
4. maragon - 30 Июня, 2015 - 12:18:09 - перейти к сообщению
Viper пишет:
Я такое на php делал, а не средствами БД. У вас есть связь по ID между форумами и подфорумами. Выбираете все форумы, потом все подфорумы и в цикле создаете новый массив связав по ID.


А можно пример?
5. Viper - 30 Июня, 2015 - 17:57:18 - перейти к сообщению
maragon пишет:
А можно пример?
пример?
Нужен тестовый набор данных под конкретный проект. А "от фонаря" ничем не поможет. Про принцип связи я вам намекнул, дальше сами пробуйте.
6. DeepVarvar - 30 Июня, 2015 - 18:01:08 - перейти к сообщению
Ну вон мы же щас какраз для нового движка структуру форума обсуждаем -- иди туда читай и следи за изменениями.

 

Powered by ExBB FM 1.0 RC1