ФорумПрограммированиеPHP для идиотов → Проблема с выводом инфы из базы в цикл

Проблема с выводом инфы из базы в цикл

  • dreny

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

    Spritz 28 декабря 2009 г. 8:25, спустя 31 минуту 28 секунд

    привет всем! нужна Ваша помощь
    Пытаюсь сделать менюшку в виде дерева, нажимаешь на основной раздел и открываются подразделы.
    менюшку нашёл сделал, решил сделать так, чтобы все данные этого меню хранились в базе и с помощью цикла выводились в форму. С горем пополам сделал так, чтобы выводился основной раздел менюшки, но вот в чем проблема, вставляю в цикл основного раздела, цикл, который выводит подраздел меню, а он не срабатывает.
    Профи подскажите пожалуйста что нужно сделать. вот сам код:

    $query_cat_menu_col = mysql_query("SELECT * FROM config");
    $num_cat2 = mysql_fetch_array($query_cat_menu_col);
    $num_cat = $num_cat2["cat_menu_col"];
    $query_menu_cat = mysql_query("SELECT * FROM catalogs");
    $menu_cat = mysql_fetch_array($query_menu_cat);
    for($f='0';$f < $num_cat;$f++){
    $i = $f+1;
    $query_cat = mysql_query("SELECT * FROM catalogs WHERE title_cat = '$i'");
    $title_cat = mysql_fetch_array($query_cat);
    printf("<div id='menutitle' onclick='SwitchMenu(\"sub%s\")'>%s</div>",$i, $title_cat["title_name"]);
    for($r='0';$r < 10;$r++){
    $d = $r+1;
    $query_cat_subtitle = mysql_query("SELECT * FROM catalogs WHERE subtitle_cat = '$d'");
    $subtitle_cat = mysql_fetch_array($query_cat_subtitle);
    printf("<span class='coolmenu' id='sub%s'>
    - <a href='%s'>%s</a><br>
    </span>",$i,$subtitle_cat["ssilka"],$subtitle_cat["subtitle_name"]);

    }
    }
  • Ewg777

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

    Spritz 28 декабря 2009 г. 7:25, спустя 22 часа 59 минут 41 секунду

  • phpdude

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

    Spritz 28 декабря 2009 г. 7:29, спустя 3 минуты 48 секунд

    $query_cat_menu_col = mysql_query("SELECT * FROM config");
    $num_cat2 = mysql_fetch_array($query_cat_menu_col);
    $num_cat = $num_cat2["cat_menu_col"];
    $query_menu_cat = mysql_query("SELECT * FROM catalogs");
    $menu_cat = mysql_fetch_array($query_menu_cat);
    for($f='0';$f < $num_cat;$f++){
    $i = $f+1;
    $query_cat = mysql_query("SELECT * FROM catalogs WHERE title_cat = '$i'");
    $title_cat = mysql_fetch_array($query_cat);
    printf("<div id='menutitle' onclick='SwitchMenu(\"sub%s\")'>%s</div>",$i, $title_cat["title_name"]);
    for($r='0';$r < 10;$r++){
    $d = $r+1;
    $query_cat_subtitle = mysql_query("SELECT * FROM catalogs WHERE subtitle_cat = '$d'");
    $subtitle_cat = mysql_fetch_array($query_cat_subtitle);
    printf("<span class='coolmenu' id='sub%s'>
    - <a href='%s'>%s</a><br>
    </span>",$i,$subtitle_cat["ssilka"],$subtitle_cat["subtitle_name"]);
    }

    ад. поминем бд сервер.. алилуя
    }
    Сапожник без сапог
  • Ewg777

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

    Spritz 28 декабря 2009 г. 7:29, спустя 38 секунд

    Автор жумлы найден.
  • phpdude

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

    Spritz 28 декабря 2009 г. 7:30, спустя 13 секунд

    такой же говнопиздец сейчас рагребаю … писатеи блядь, вы навернео по курсам уважаемого говнокодера рунета учились? (попов или как его там(
    Сапожник без сапог
  • dreny

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

    Spritz 28 декабря 2009 г. 7:52, спустя 22 минуты 48 секунд

    учусь, ребят, не судите строго, подскажите как сделать лучше. Мануал хорошо, но совет профессионала лучше всего
  • Ewg777

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

    Spritz 28 декабря 2009 г. 7:54, спустя 1 минуту 24 секунды


    учусь, ребят, не судите строго, подскажите как сделать лучше. Мануал хорошо, но совет профессионала лучше всего
    Начни с "лайт" языков и никаких бд на начальной стадии.
  • Trej Gun

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

    Spritz 28 декабря 2009 г. 9:54, спустя 1 час 59 минут 54 секунды

    господа простите но вы тут озверели
    хорош с чела ржать ваш первый код на этом форуме был не многим лучше
    а чел нормально спросил и оформил

    вот глянь
    http://dev.e-taller.net/dbtree/phpDbTree-1.4.zip
    и загугли по nested sets и dbtree
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 28 декабря 2009 г. 10:59, спустя 1 час 5 минут 10 секунд

    CTAPbIu_MABP, ты куда человека за Нестедами шлешь?! Он ведь там реально офигеет. Пусть сначала действительно без БД попробуем. Массивы там поразбирать (они, кстати, очень интересная штука). А Нестеды - это сложновато само по себе.

    Но насчет наездов на ТС, то тут ты прав - пока все нормально у него в плане вопросов-понимания :)
  • mario

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

    Spritz 28 декабря 2009 г. 11:13, спустя 14 минут 6 секунд

    dreny, http://pyha.ru/forum/topic/2211.msg38120 не совсем твой случай, но из него ты узнаешь как тебе быть дальше.
  • AlexB

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

    Spritz 28 декабря 2009 г. 14:17, спустя 3 часа 3 минуты 31 секунду

    Могу пока порекомендовать переделать все с циклов for на циклы foreach.
    И давай последовательно разбиратся, вникнуть сходу в весь код сложно и в лом. Для начала приведи скрипт только для первого уровня и снабжай строки кода комментариями.
    Потом будем делать второй.
  • mario

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

    Spritz 28 декабря 2009 г. 14:21, спустя 4 минуты 10 секунд


    Могу пока порекомендовать переделать все с циклов for на циклы foreach.
    И давай последовательно разбиратся, вникнуть сходу в весь код сложно и в лом. Для начала приведи скрипт только для первого уровня и снабжай строки кода комментариями.
    Потом будем делать второй.
    алекс, а может лучше вначале ему посоветовать формализовать все словами более подбробно?
    Я думаю если он это сделает, половина вопросов отпадет. А другую половину мы ему по ходу подскажем…
    Как думаешь?
  • dreny

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

    Spritz 28 декабря 2009 г. 22:23, спустя 8 часов 2 минуты 42 секунды

    Ребята, спасибо всем за подсказки, приятно когда есть люди желающие помочь.
    У меня всё таки получилось всё реализовать так как задумывал следующим образом:

    <?php
    $i='1';
    $query_menu_cat = mysql_query("SELECT * FROM catalogs ");
    //выборка основного раздела меню
    while ($menu_cat = mysql_fetch_assoc($query_menu_cat)) {
    if ($menu_cat['title_cat'] == $i){
    printf("<div id='menutitle' onclick='SwitchMenu(\"sub%s\")' class = 'menutitle''>(%s):&nbsp;%s</div>",$i,$i, $menu_cat["title_name"]);
    $query_cat = mysql_query("SELECT * FROM catalogs");
    //выборка подразделов меню
    printf("<span class = 'submenutitle' id='sub%s'>",$i);
    while ($cat = mysql_fetch_assoc($query_cat)) {
    if ($cat["subtitle_cat"] == $i){
    printf("<li> <a href='%s'>%s</a><br>",$cat["ssilka"],$cat["subtitle_name"]);
    }
    }
    echo "</span>";
    $i++;
    }
    }
    ?>

    Менюшка работает так как мне хотелось, конечно можно и этот код доработать, но пока сойдёт.. Все удачи
  • AlexB

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

    Spritz 28 декабря 2009 г. 22:53, спустя 29 минут 42 секунды

    Что пока бросилось в глаза:
    У тебя два раза: SELECT * FROM catalogs
    Причем второй раз в цикле, т.е. ты достаточно ресурсоемкую операцию выполняешь 1+N раз. Смысл? У тебя уже есть эта выборка на второй строчке кода, дальше пользуемся ее результатами и базу больше не тревожим.

    В крайнем случае внутри пишем: "SELECT * FROM catalogs WHERE subtitle_cat=$i"  и выкидываем лишние проверки. Тогда запрос внутри цикла приобретает хоть какой-то смысл.

    Что на while переделал - молодец. )))


    можно и этот код доработать, но пока сойдёт..
    А вот это брось. Надо сразу учиться делать нормально.
  • dreny

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

    Spritz 29 декабря 2009 г. 23:58, спустя 1 день 1 час 4 минуты

    Вот, я думаю конечный вариант… Или всё таки и здесь можно что-нибудь доработать?

    <?php
    $i='1';
    $query_menu_cat = mysql_query("SELECT title_cat, title_name FROM catalogs ");
    while ($menu_cat = mysql_fetch_assoc($query_menu_cat)) {
    if ($menu_cat['title_cat'] == $i){
    printf("<div id='menutitle' onclick='SwitchMenu(\"sub%s\")' class = 'menutitle''>(%s): %s</div>",$i,$i, $menu_cat["title_name"]);
    $query_cat = mysql_query("SELECT subtitle_cat, subtitle_name, ssilka FROM catalogs WHERE subtitle_cat = '$i'");
    printf("<span class = 'submenutitle' id='sub%s'>",$i);
       while ($cat = mysql_fetch_assoc($query_cat)) {
           if ($cat["subtitle_cat"] == $i){
                printf("<li> <a href='%s'>%s</a><br>",$cat["ssilka"],$cat["subtitle_name"]);
           }
       }
    echo "</span>";
    $i++;
    }
    }
    ?>

    И такой вот ещё вопрос, пытаюсь создать дирректорию следующим образом: в файле config.php прописываю

    define ('DIR', 'http://'.$_SERVER['HTTP_HOST'].'/dir/');

    а в файле add_dir.php

    //$add_dir_title_cat - имя дирректории передабющейся из формы
    mkdir(DIR.$add_dir_title_cat,0700);

    при том что если прописываешь в файле add_dir.php

    echo DIR;

    То он выводит то что нужно, т.е.получается он должен и создавать дирректорию, а он не хочет. что не так, подскажите пожалуйста

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