Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Главная страница форума
 
 автор: Keks   (29.03.2007 в 12:40)   письмо автору
 
 

Недавно тут начал делать свой форум, и затруднение вызвало создание главной страницы форума (т.е. разбиение разделов форума на категории) пишу такой код:

<?php
//получаем все категории форума
  
$get_all_cats mysql_query("SELECT * FROM forums WHERE is_category = 'yes' AND visibility='1'");
  if (!
$get_all_catsshow_error();
//в цикле преобразуем результат запроса в объект
  
while ($CATEGORY mysql_fetch_object($get_all_cats))
  {
//запрос всех разделов форума, входящих в данную категорию
    
$get_forums mysql_query("SELECT * FROM forums WHERE parent_forum_id='".$CATEGORY->id_forum."' AND is_category ='no'");
    if (!
$get_forumsshow_error();
//преобразуем в объект результат запроса
    
while ($FORUM mysql_fetch_object($get_forums))
    {
//если id родительского раздела данного форума равно id категории форума
      
if ($FORUM->parent_forum_id == $CATEGORY->id_forum)
      {
//добавляем этот раздел в список данной категории
        
$forum_list .= "
        <tr>
        <td width=\"30%\" class=\"name_forum\">
        <a href='showforum.php?id="
.$FORUM->id_forum."'>".$FORUM->name."</a>
        </td>
        <td width=\"50%\" class=\"name_forum\">
        "
.$FORUM->description."
        </td>
        <td width=\"20%\" class=\"name_forum\">
        {MODERATORS}
        </td>
        </tr>\n
        "
;
      }
//создаем "шапку" данной категории форума
    
$forum_list_head "
    <tr>
    <th>"
.$CATEGORY->name."</th>
    </tr>
    <tr class='table_head'>
    <td width='30%'>
    Название форума
    </td>
    <td width='50%'>
    Короткое описание
    </td>
    <td width='20%'>
    Модератор
    </td>
    </tr>\n
    "
;
    }
//суммируем результат
    
$forums .= "<table>".$forum_list_head.$forum_list."</table>\n";
  }
?>

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

   
 
 автор: Keks   (30.03.2007 в 16:17)   письмо автору
 
   для: Keks   (29.03.2007 в 12:40)
 

ну неужели никто не знает решения этой проблемы? =( Я уж измучался , последние три дня никак не могу сделать главную страницу форума, во вторую категорию почему-то попадают разделы, которые принадлежат первой, хотя они в первой уже отображены...
На всякий случай напишу структуру таблицы forums:

<?php
$TABLE
[1] =  ("
CREATE TABLE forums (
id_forum INT(11) NOT NULL auto_increment,
name TINYTEXT,
description TEXT,
parent_forum_id  INT(11),
is_category ENUM('yes', 'no') NOT NULL DEFAULT 'no',
visibility ENUM('1', '2', '3', '4') NOT NULL DEFAULT '1',
PRIMARY KEY (id_forum)
)
"
);
//visibility - видимость данного раздела для посетителей:
// 1 - видимый для всех;
// 2 - могут видеть только зарегесртированные пользователи;
// 3 - могут видеть только модераторы и админы;
// 4 - могут видеть только админы.
$create_table mysql_query($TABLE[1]);
?>

   
 
 автор: Trianon   (30.03.2007 в 17:45)   письмо автору
 
   для: Keks   (30.03.2007 в 16:17)
 

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

Не утверждаю, что так, как Вы, подходить к этой задаче вообще нельзя, просто объясняю, почему меня эта задача - в такой постановке - не заинтересовала.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования