За последние 24 часа нас посетили 53807 программистов и 1652 робота. Сейчас ищут 1092 программиста ...

Выборка из базы для главной форума

Тема в разделе "PHP для новичков", создана пользователем ALEXU, 23 апр 2011.

  1. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Привет Всем.

    Хочу сделать мини-форум - категория>тема>топик. Без каких либо дополнительных функций.

    Как строить вывод на главной? Т.е. чтобы были темы и к ним разделы?

    Есть к примеру запрос на категории
    Код (Text):
    1. $sql = mysql_query("SELECT id, name FROM forum");
    и запрос на темы
    Код (Text):
    1. $sql2 = mysql_query("SELECT id, name, forum_id FROM forum_cat WHERE forum_id = ...");
    forum_id - в данном случае сюда попадает id категории форума, чтобы связь была

    PHP:
    1. <?php
    2. $content = array();
    3. while ($row = mysql_fetch_assoc($sql))
    4. {
    5.     $content[] = array(
    6.         'ID'    => $row['id'],
    7.         'NAME'  => $row['name']
    8.     );
    9. }
    10.  
    11. $smarty->assign('content',$content);
    Если делать запрос $sql2 в цикле, то тогда будет столько запросов, сколько и самих Категорий. Это не очень хорошо я думаю.
    Как можно этого избежать?

    Или может одним запросом с JOIN LEFT, или еще как-то?

    Может есть у кого пример кода? Я просматривал разные скрипты, но там черт ногу сломит...
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Велосипед пытаешься сделать, а в наличии только 2 колеса? :)
     
  3. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    скорее трехколесник)
    Я смотрел кучу форумов, но везде кучи настроек и функций. мне это не нужно.
    Мне нужно просто создавать Категории>Темы>Топики

    Тут скорее даже интересует как делать такой вывод из БД. Т.е. чтобы выводить в структуре, как главная, например, этого форума.
    КАТЕГОРИЯ
    Раздел
    Раздел
    Раздел
    КАТЕГОРИЯ 2
    Раздел 2
    Раздел 2
    Раздел 2
    и т.д... с меньшим количеством запросов.
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    А в чем проблема то? У категории есть свой ID у подкатегории юзай ID категории в которой он находится. Выводи списком категорию и её подкатегории. У подкатегории свой уникальный ID, сипсок топиков в ней бери через GET. У темы будет ID подкатегории вкоторой он находится. Посмотри как граматно запрос оформить в SQL. Можно вывести список категорий с подкатегориями через SELECT (категория)... INNER JOIN (раздел) через while объединив таблицы выводи ) Я бы такую штуку за вечер написал =)
     
  5. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    Что-то не могу понять как правильно такой запрос сделать и как все пустить в два цикла и сунуть в smarty.
    Сложные такие запросы пока для моего понимания)

    Все остальное то уже сделал. Т.е. топики, подкатегории и т.д...
     
  6. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    ALEXU, в качестве аватара разрешены только личные фотографии
     
  7. ALEXU

    ALEXU Активный пользователь

    С нами с:
    5 апр 2011
    Сообщения:
    79
    Симпатии:
    0
    Адрес:
    Russia
    понял!
     
  8. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Это разве сложный запрос о_О