ФорумПрограммированиеPHP для идиотов → Вопрос по моему говнокоду

Вопрос по моему говнокоду

  • trim

    Сообщения: 62 Репутация: N Группа: Кто попало

    Spritz 14 октября 2009 г. 18:13

    Добрый вечер.Я тут пишу форум, у меня выводятся разделы и подразделы в таком виде

    Раздел
    >подраздел
    >подраздел
    >подраздел
    Раздел
    >подраздел
    >подраздел

    Вот мой код который этим выводом занимается


    $r_sql=mysql_query("SELECT * FROM f_razdel ORDER BY id DESC LIMIT 10");
    while($r_mas=mysql_fetch_array($r_sql))
    {
    echo "<div class='razd'>".$r_mas['name']."</div></a><br/>";
    $podr_sql=mysql_query("SELECT * FROM f_podrazdel WHERE razdel_id='".$r_mas['id']."' ORDER BY id DESC LIMIT 10");
    while($podr_mas=mysql_fetch_array($podr_sql))
    {
    echo $podr_mas['name'];
    echo "<br/>";
    }
    }


    вот талы

    CREATE TABLE f_razdel (
    id int(11) NOT NULL auto_increment,
    name TEXT,
    about TEXT,
    PRIMARY KEY (`id`)
    );

    CREATE TABLE f_podrazdel (
    id int(11) NOT NULL auto_increment,
    razdel_id int(11) NOT NULL default '0',
    name TEXT,
    about TEXT,
    PRIMARY KEY (`id`)
    );

    Так вот, если я буду запускать такие коды меня не попросят с хостинга))?
    Мне кто то говорил что много запросов к базе это плохо…
    И как можно сосчитать и вывести сколько было запросов? Я на некоторых сайтах видел типа SQL: 3
    Спасибо!

  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 14 октября 2009 г. 18:19, спустя 6 минут 27 секунд

    испоьзуй JOIN и у тебя будет один запрос
    Спустя 95 сек.
    и переделай структуру хранения разделов и подразделов и подподразделов и т.д. ….
    сделай одну таблицу, сделай колонку parent_id.
    и почитай про хранение деревьев…
  • trim

    Сообщения: 62 Репутация: N Группа: Кто попало

    Spritz 14 октября 2009 г. 18:22, спустя 2 минуты 44 секунды


    испоьзуй JOIN и у тебя будет один запрос
    Пока еще даже не знаю как его юзать , щас почитаем че это

    Так у меня razdel_id это и есть parent_id…
    И как это все в одну таблу запихнуть? .хуею.
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 14 октября 2009 г. 18:20, спустя 23 часа 57 минут 57 секунд

    и джойн тогда не нужен будет…
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 14 октября 2009 г. 18:32, спустя 12 минут 24 секунды

    не пиши транслитом, ну каждому уже говорю, код на транслите разбирать тупо
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 14 октября 2009 г. 18:34, спустя 1 минуту 59 секунд

    вот такую таблицу сделай, назови ее sections

    id | parent_id | name | created_at

    с чего тут хуеть ????
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 15 октября 2009 г. 6:16, спустя 11 часов 41 минуту 49 секунд

    псевдокод

    select joined section & chapter
    prevSection = null
    while row=fetch_assoc
    if row[section] != prevSection
    print Section header
    prevSection = row[section]
    print chapter

    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 октября 2009 г. 13:31, спустя 7 часов 14 минут 59 секунд

    %username%, спасибо! )))
    пожалуйста )
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 октября 2009 г. 13:36, спустя 5 минут 17 секунд

    adw0rd, ыыы, жжешь)
    Сапожник без сапог
  • trim

    Сообщения: 62 Репутация: N Группа: Кто попало

    Spritz 15 октября 2009 г. 15:57, спустя 2 часа 20 минут 46 секунд

    Даа помоему ранавато мне форумы писать ))) столько непоняток(

    Вот допусти чел создает тему и пишет первый пост, куда его записывать с моей структурой :( каша в башке

    CREATE TABLE f_razdel (
    id int(11) NOT NULL auto_increment,
    name TEXT,
    about TEXT,
    PRIMARY KEY (`id`)
    );

    CREATE TABLE f_podrazdel (
    id int(11) NOT NULL auto_increment,
    razdel_id int(11) NOT NULL default '0',
    name TEXT,
    about TEXT,
    PRIMARY KEY (`id`)
    );


    CREATE TABLE f_theme (
    id int(11) NOT NULL auto_increment,
    podrazdel_id int(11) NOT NULL default '0',
    name TEXT,
    autor TEXT,
    f_post TEXT,
    cr_time TEXT,
    PRIMARY KEY (`id`)
    );


    CREATE TABLE `f_post` (
    `id` int(11) NOT NULL auto_increment,
    `theme_id` int(11) NOT NULL default '0',
    `autor` text,
    `time` text,
    `msg` text,
    `f_post` text,
    `theme_name` text,
    PRIMARY KEY (`id`)
    )
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 октября 2009 г. 15:58, спустя 34 секунды

    trim, а ты не пробовал скачать парочку известных форумов и посмотреть как это организовано у них ?
  • trim

    Сообщения: 62 Репутация: N Группа: Кто попало

    Spritz 15 октября 2009 г. 15:59, спустя 1 минуту 43 секунды


    %username%, спасибо! )))
    пожалуйста )
    adw0rd, а чем ты помог? phpdude, хватит тупить!!
    Спустя 33 сек.

    trim, а ты не пробовал скачать парочку известных форумов и посмотреть как это организовано у них ?

    Да у них все сложно там (
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 октября 2009 г. 16:01, спустя 1 минуту 51 секунду

    Да у них все сложно там (

    во-первых, ничего там сложного нету.
    во-вторых, никто не говориол что будет легко.
    в-третьих :
    phpdude, хватит тупить!!

    следи за словами
  • trim

    Сообщения: 62 Репутация: N Группа: Кто попало

    Spritz 15 октября 2009 г. 16:05, спустя 3 минуты 33 секунды


    Да у них все сложно там (

    во-первых, ничего там сложного нету.
    во-вторых, никто не говориол что будет легко.
    в-третьих :
    phpdude, хватит тупить!!

    следи за словами

    а че они флудят??? Где модеры? Че за беспредел…
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 октября 2009 г. 16:07, спустя 2 минуты 28 секунд

    во-первых, в даной теме я вроде как являюсь модером.
    во-вторых, я тебе уже ответил этим постом http://pyha.ru/forum/topic/3509.msg72165#msg72165

Пожалуйста, авторизуйтесь, чтобы написать комментарий!