ФорумПрограммированиеPHP для идиотов → Опять динамический SELECT

Опять динамический SELECT

  • V_Z

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

    Spritz 3 декабря 2009 г. 18:28

    Добрый день, тема уже обсуждалась, я думаю и не один раз.
    http://pyha.ru:80/forum/topic/3436.0

    Может я полный креветко в этом ( а скорее так оно и есть)
    НО У МЕНЯ НЕ РАБОТАЕТ!!!!!!!!!!
    Смысл у меня такой же, только структура бд немного другая
    CREATE TABLE `t_departament` (  
    `id_departament` int(11) NOT NULL auto_increment,
    `name` varchar(16) NOT NULL,
    `is_deleted` enum("Yes","No") NOT NULL,
    PRIMARY KEY (`id_departament`);
    CREATE TABLE `t_seria` (
    `id_seria` int(11) NOT NULL auto_increment,
    `id_departament` int(11) NOT NULL,
    `name` varchar(16) NOT NULL,
    `is_deleted` enum("Yes","No") NOT NULL,
    PRIMARY KEY (`id_seria`,`id_departament`);
    CREATE TABLE `t_workshop` (
    `id_workshop` int(11) NOT NULL auto_increment,
    `id_seria` int(11) NOT NULL,
    `name` varchar(35) NOT NULL,
    `is_deleted` enum("Yes","No") NOT NULL,
    PRIMARY KEY (`id_workshop`,`id_seria`);
    CREATE TABLE `t_group` (
    `id_group` int(11) NOT NULL auto_increment,
    `id_workshop` int(11) NOT NULL,
    `name` varchar(16) NOT NULL,
    `is_deleted` enum("Yes","No") NOT NULL,
    PRIMARY KEY (`id_group`,`id_workshop`);

    По логике я изменяю только сам запрос в коде с примера и у меня получилось следующее:
    SELECT.PHP
    <?PHP  
    ini_set('display_errors',1);
    error_reporting(E_ALL ^E_NOTICE);
    $db = mysql_connect ("localhost", "root", "123456");
    mysql_query ("set character_set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    mysql_select_db("HAZ",$db);
    ?>
    <script src="JsHttpRequest.js"></script>
    <script>function doload(value){
    var req=new JsHttpRequest();req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result").innerHTML=req.responseText;}
    req.open(null,"select2.php",true);req.send({departament:value});}

    function doload1(value){
    var req=new JsHttpRequest();req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result1").innerHTML=req.responseText;}
    req.open(null,"select3.php",true);req.send({brand:value, model:value});}

    function doload2(value){
    var req=new JsHttpRequest();req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result2").innerHTML=req.responseText;}
    req.open(null,"select4.php",true);req.send({brand:value, model:value, body:value});}
    </script>
    <form action="script.php" method="POST">
    <select name="departament" id="departament" onchange="doload(this.value);">
    <option value="no_action">–Выберите марку–</option>
    <?PHP
    $sql = mysql_query ("SELECT DISTINCT * FROM t_departament"); while ($new_brand = mysql_fetch_array($sql))
    echo '<option value='.$new_brand['id_departament'].'>'.$new_brand['name'].'</option>';
    ?>
    </select>
    <br>
    <br>
    <div id="result"></div>
    <br>
    <div id="result1"></div>
    <br>
    <div id="result2"></div>
    <input type="submit" value="Найти">
    </form>

    SELECT2.PHP
    <?PHP  
    $db = mysql_connect ("localhost", "root", "123456");
    mysql_query ("set character_set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    mysql_select_db("HAZ",$db);
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");
    ?>
    <select name="model" id="model" onchange="doload1(this.value, this.value);">
    <option value="no_action">–Выберите модель–</option>
    <?PHP
    $sql = mysql_query ('SELECT * t_seria WHERE id_departament = "'.mysql_real_escape_string($_REQUEST["departament"]).'"');
    if($sql)
    {
    while ($new_model= mysql_fetch_array($sql))
    {
    echo '<option value="'.$new_model['id_seria'].'">'.$new_model['name'].'</option>';
    }
    }
    else { echo mysql_error();}
    ?>
    </select>

    В итоге:
    Первый селект есть и заполнен корректно, при выборе значения в нем появляется второй но он пустой :( :(
    Подскажите что я не так делаю….

  • adw0rd

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

    Spritz 4 декабря 2009 г. 1:05, спустя 6 часов 37 минут 2 секунды

    V_Z, вы бы хоть дамп составили валидный… Да и данные не помешало бы внести.
    Я сейчас себе залил, потестю - отвечу.
    adw/0
  • adw0rd

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

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

    У вас установлен FireBug? А FireFox?
    Там в консоле при выборе селекта первого вылазиет следующее:
    {"id":"12599178204760","js":false,"text":"<select name=\"model\" id=\"model\" onchange=\"doload1(this.value, this.value);\">\n<option value=\"no_action\">–\u0420\u2019\u0421\u2039\u0420\u00b1\u0420\u00b5\u0421\u0402\u0420\u0451\u0421\u201a\u0420\u00b5 \u0420\u0458\u0420\u0455\u0420\u0491\u0420\u00b5\u0420\u00bb\u0421\u040a–<\/option>\nYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't_seria WHERE id_departament = \"1\"' at line 1<\/select>"}
    adw/0
  • phpdude

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

    Spritz 4 декабря 2009 г. 1:11, спустя 26 секунд

    зы: заебали подобные темы)))

    напоявлялось всяких библиотек, так даже с ними не могут … не то что в наши времена, да эдво!
    Сапожник без сапог
  • adw0rd

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

    Spritz 4 декабря 2009 г. 1:13, спустя 2 минуты 12 секунд

    Замените
    $sql = mysql_query ('SELECT * t_seria WHERE id_departament = "'.mysql_real_escape_string($_REQUEST["departament"]).'"');

    На
    $sql = mysql_query ('SELECT * FROM t_seria WHERE id_departament = "'.mysql_real_escape_string($_REQUEST["departament"]).'"');
    Спустя 102 сек.

    зы: заебали подобные темы)))

    напоявлялось всяких библиотек, так даже с ними не могут … не то что в наши времена, да эдво!
    Ага, эти библиотеки только отупляют по моему :)
    Я считаю что библиотеки созданы для облегчения труда опытных разработчиков, а не новичков. Для новичков это только тормоз в развитии.
    adw/0
  • phpdude

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

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

    adw0rd, уху, моск сразу атрофируется а не когда должен)

    мне вот похуй, хоть с библиотекой хоть нет и я главное понимаю что в ней происходит, а новички как ящик паноры используют абсолютно не понимая что ТАКОЕ JSON, что такое ajax заебало карочь

    зы: тс к тебе никоим боком не относится.
    Сапожник без сапог
  • AlexB

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

    Spritz 4 декабря 2009 г. 1:47, спустя 30 минут 3 секунды

    Главная проблема, что люди не понимают что такое отладка, причем категорически.

    V_Z, запомни на всю жизнь. Если ты поменял (написал, сгенерировал … глагол по вкусу) запрос, и что-то не работает - первым делом вставь в код печать (сохранение в лог, отсылку на почту … опять таки глагол по ситуации) этого запроса и выполни это без всякого PHP в консоли или любом БД-клиенте. После чего 99% процентов проблем разрешится.

    А вот если он по прежнему не работает, тогда можно запостить его на форум. Причем именно запрос, а не весь скрипт.
  • phpdude

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

    Spritz 4 декабря 2009 г. 1:57, спустя 10 минут 54 секунды

    AlexB, один хуй не поймет … все не понимают :)
    Спустя 56 сек.
    интересно в темах типочков часто бывают темы вида "помогите не работает?" думаю врядли, последний раз было у мд5 вроде когда он оптимизацию запроса спрашивал, но это другая опера. а все потому что типочки знают гугль, гугль знает их и они умеют дебажить
    Сапожник без сапог
  • V_Z

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

    Spritz 6 декабря 2009 г. 17:45, спустя 2 дня 15 часов 47 минут

    Огромное спасибо, adw0rd и извеняюсь за глупый вопрос.
    AlexB, спасибо за хороший совет. (во пряки мнению phpdude, я догадалсяч как в консоле запрос запустить :))
    и о главном я прекрастно понимаю что что не гений программирования.
    Я много читал тем на вашем форуме (понимал конечно мало :)) и всегда интересовала не задумываются ли луди когда задают вопросы что такие люди как phpdude, их будут мягко говояря "обсирать" (с одной стороны справедливо а с другой можно ведь выбирать ФОРМУЛИРОВКИ) их. Да зачастую вопросы глупые (и мой из того же числа), но в любом случае НЕЛЬЗЯ оскорблять человека обратившегося к тебя за помощью!

    И еще раз ОГРОМНОЕ СПАСИБО.


    p.s. А с другой стороны не было бы phpdude, глупых вопросов было бы в три раза больше :)
  • phpdude

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

    Spritz 6 декабря 2009 г. 17:50, спустя 4 минуты 53 секунды

    V_Z, истину глаголешь! лохи сразу сваливают!)
    Спустя 41 сек.
    у меня в контакт листе ест ьчеловек 5 которые только ЧИТАЮТ пыху, ибо боятся задать вопрос ибо типочки тут суровые и ткнут рожей в гавно, если человек гавно с собой принес)
    Сапожник без сапог
  • V_Z

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

    Spritz 6 декабря 2009 г. 17:54, спустя 3 минуты 45 секунд

    phpdude, судя из сказанного тобой я по крайней мери я не лох ;)
    что не может не радовать )
  • phpdude

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

    Spritz 6 декабря 2009 г. 17:55, спустя 57 секунд

    я по крайней мери я не лох ;)

    судя по заиканиям ты не очень в этом уверен ))))))))))))))
    Сапожник без сапог
  • V_Z

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

    Spritz 6 декабря 2009 г. 17:59, спустя 4 минуты 44 секунды

    phpdude, судя по моим познанием РХР я не далеко ушел от этого "звания"

    Пока ты добрый ответь на совсем дебильный вопрос:
    Как во втором селекте кодировку поменять
    в CELECT2.PHP
    написал
    $JsHttpRequest=new JsHttpRequest("UTF-8");

    и в JsHttpRequest.php
    написал
    var $SCRIPT_ENCODING = "UTF-8";

    не помогает :(
  • phpdude

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

    Spritz 6 декабря 2009 г. 18:02, спустя 2 минуты 16 секунд

    V_Z, покажи селект.пхп весь

    чую не в этом дело.

    зы: я всегда добрый, просто не люблю невеж.
    зы2: select != select ;)
    Сапожник без сапог
  • V_Z

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

    Spritz 6 декабря 2009 г. 18:03, спустя 1 минуту 50 секунд

    <?PHP  
    $db = mysql_connect ("localhost", "root", "123456");
    mysql_query ("set character_set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    mysql_select_db("HAZ",$db);
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("utf-8");
    ?>
    <select name="model" id="model" onchange="doload1(this.value, this.value);">
    <option value="no_action">–Выберите модель–</option>
    <?PHP
    $sql = mysql_query ('SELECT * FROM t_seria WHERE id_departament = "'.mysql_real_escape_string($_REQUEST["departament"]).'"');
    if($sql)
    {
    while ($new_model= mysql_fetch_array($sql))
    {
    echo '<option value="'.$new_model['id_seria'].'">'.$new_model['name'].'</option>';
    }
    }
    else { echo mysql_error();}
    ?>
    </select>

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