ФорумПрограммированиеPHP для идиотов → Долбанный SELECT !

Долбанный SELECT !

  • mkosyakv

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

    Spritz 12 июня 2011 г. 10:51

    Делаю интерактивный Select, инструкция - http://pyha.ru/articles/php/ajax-select-jshttprequest/
    "Select.php" сделан, все передается как надо.
    Со вторым документом сложнее, переменную принимает, проверено!
    Дальше задача такая, обратится в БД -> создать селект-> вытащить из БД данные-> Селекту в options напишать их, в цикле.
    Оригинальный код был таков-
    $html="<select name=\"provider\">;
    <option>ДОСТАЛА</option>
    <option>ХЕРЬ</option>
    <option>".$trans."</option>
    </select>";

    Переменная $trans успешно вытаскивается из БД, но это не то что мен нужно.
    Обычный код SELECTA при выборке из БД
    $sql1="select * from spec";
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    echo '<select name="spec">';
    echo '<option> </option>';
    while ($row1 = pg_fetch_object($result1))
    {
    $spec1="".trim($row1->spec)."";
    echo '<option>'. $row1->spec .'</option>';
    '</select>\n';
    }


    А вот скрестить две этих хрени у меня то и не выходит.
    Вся проблема возникает в том что должно быть так -
     $html="<select name=\"provider\">; 


    И как только я не пытался приписывать это переменную $html к селекту с выборкой из бд, ни че не получается ((((


    Умоляю! Спасите, задница трещит уже по швам, не один час убил (
  • mkosyakv

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

    Spritz 12 июня 2011 г. 11:23, спустя 31 минуту 43 секунды

    Если делать так то возвращается тупо пустой Select, в чем проблема не могу понять.

    $k=$_POST["spec"];

    $sql1="select * from spec where spec='$k'";
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    $html='<select name="provider">';
    while ($row1 = pg_fetch_object($result1))
    {
    $t="".trim($row1->trans)."";
    '<option>' .$t. '</option>';
    '</select>\n';
    }
  • master

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

    Spritz 12 июня 2011 г. 12:38, спустя 1 час 15 минут 46 секунд

    задница трещит уже по швам

    даже не знаю чем помочь…
    не всё полезно, что в swap полезло
  • Faster

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

    Spritz 12 июня 2011 г. 12:55, спустя 16 минут 58 секунд

    master,
    может быть метод доктора Лобкова?
  • mkosyakv

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

    Spritz 12 июня 2011 г. 13:21, спустя 25 минут 12 секунд

    Какие же Вы умницы!

    У человека проблемы, а они веселятся, так продолжать!

    Лучше б помогли …..
  • Flare

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

    Spritz 12 июня 2011 г. 13:57, спустя 36 минут 25 секунд

    что-то я не смог толком понять в чем проблема, покажи хтмл код который в итоге получается.
    <select name='provider'>;
    <option value="значение из БД ID">Описание</option>
    </select>
  • Flare

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

    Spritz 12 июня 2011 г. 14:05, спустя 7 минут 42 секунды

    $k=pg_ real_escape_string($_POST["spec"]);

    $sql1="select * from spec where spec=".$k;
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    $html="<select name='provider'><br />";
    while ($row1 = pg_fetch_object($result1))
    {
    echo "<option value = '".$row1->id."'>".rtrim($row1->trans)."</option><br />";
    echo "</select>";
    }
    Спустя 96 сек.
    $k=pg_ real_escape_string($_POST["spec"]);

    $sql1="select * from spec where spec=".$k;
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    $html.="<select name='provider'><br />";
    while ($row1 = pg_fetch_object($result1))
    {
    html.= "<option value = '".$row1->id."'>".rtrim($row1->trans)."</option><br />";
    html.= "</select>";
    }
    Спустя 55 сек.
    $k=pg_ real_escape_string($_POST["spec"]);

    $sql1="select * from spec where spec=".$k;
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    $html.="<select name='provider'><br />";
    while ($row1 = pg_fetch_object($result1))
    {
    $html.= "<option value = '".$row1->id."'>".rtrim($row1->trans)."</option><br />";
    $html.= "</select>";
    }


    предыдущие 2 сниппета кода можно удалить
  • mkosyakv

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

    Spritz 12 июня 2011 г. 15:05, спустя 1 час 45 секунд

    Flare

    Все заработало! Огромное тебе спасибо!!!!! Ты не представляешь как ты мне помог :)
  • mkosyakv

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

    Spritz 12 июня 2011 г. 15:21, спустя 15 минут 29 секунд

    Если инетерсно, вот первый select -
    $sql1="select * from spec";
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    echo '<select name="spec" onchange="doload(this.value);">';
    echo '<option> </option>';
    while ($row1 = pg_fetch_object($result1))
    {
    $spec1="".trim($row1->spec)."";
    echo '<option value="'.$spec1.'">'. $row1->spec .'</option>';
    '</select>\n';
    }

    И то как он теперь формируется, благодоря Вашей помощи -
    $k=$_POST["spec"];

    $sql1="select * from spec where spec='$k'";
    $result1=pg_query($sql1) or die("Запрос не выполнен: ".pg_ErrorMessage());

    $html.="<select name='provider'><br/>";
    while ($row1 = pg_fetch_object($result1))
    {

    $html.= "<option>".trim($row1->trans)."</option><br/>";
    $html.="</select>";
    }


    В суть передаваемых данных можно не вдваться, это были два тестовых selecta, теперь можно приступать к основной работе зависимых селектов, там будет примерно раз в пять сложнее (( Но теперь хоть все работает, поэтому Респект! Мозги то работают но сам я плохо знаю синтаксис, поэтому порой застреваю на простых вещях. Вот как я понял (.) - точка в конце переменной
    $html.
    означает что нужно переменную не переписать а добавить к уже имеющимся данным?
  • Flare

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

    Spritz 12 июня 2011 г. 16:33, спустя 1 час 12 минут 7 секунд

    означает что нужно переменную не переписать а добавить к уже имеющимся данным?
    да
  • Sinkler

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

    Spritz 13 июня 2011 г. 2:33, спустя 9 часов 59 минут 37 секунд

    У человека проблемы, а они веселятся, так продолжать!

    ууу, чувак, это еще не проблемы…
  • phpdude

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

    Spritz 13 июня 2011 г. 5:58, спустя 3 часа 25 минут 50 секунд

    пидорасы! висилятся когда у людей проблемы!!! В РОТ ВАМ НОГИ БЛЕЯДИ!!!! АДМИНАФ НА ВААС НЕТТ СУКИ!!!!
    Сапожник без сапог
  • mkosyakv

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

    Spritz 13 июня 2011 г. 9:01, спустя 3 часа 2 минуты 19 секунд


    пидорасы! висилятся когда у людей проблемы!!! В РОТ ВАМ НОГИ БЛЕЯДИ!!!! АДМИНАФ НА ВААС НЕТТ СУКИ!!!!


    xD


    У человека проблемы, а они веселятся, так продолжать!

    ууу, чувак, это еще не проблемы…

    Проблема в том что я завтрял на том месте где застревать не должен, на несколько часов.
    Пишу программу, состоящей из 4х модулей, кучей phpшек, и общее их количество строк уже перевалило за 15 тысяч, и это только половина работы, вторую надо сделать до 20 ги числа - Вот это и есть проблемы xD
  • master

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

    Spritz 13 июня 2011 г. 9:08, спустя 7 минут 25 секунд

    общее их количество строк уже перевалило за 15 тысяч

    и это только половина работы

    я не знаю как ты пишешь, но столько кода - слишком дохуя. по стандартам motorola считается что на триста строк кода программист делает две серьёзные ошибки. то есть нужны обязательные ревью и/или тесты. ты к своим 30 тысячам строк баги будешь фиксать ещё год.
    не всё полезно, что в swap полезло
  • mkosyakv

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

    Spritz 13 июня 2011 г. 9:32, спустя 23 минуты 38 секунд


    я не знаю как ты пишешь, но столько кода - слишком дохуя. по стандартам motorola считается что на триста строк кода программист делает две серьёзные ошибки. то есть нужны обязательные ревью и/или тесты. ты к своим 30 тысячам строк баги будешь фиксать ещё год.


    Дак и так постоянно тестирую на БАГИ, и исправлю попутно, то что потом дохера времени еще исправлять эт тоже вкурсе, исправлять, дописывать, изменять, добавлять. Это пиздец какото, и нихуя не отвертется ((
    Да и пишу я хуёвенько xD если самому же этот код оптимизировать после окончания работу, то думаю можно будет сократить процентов на 30% общее количество строк. Если кому нить из "профессионалам" доверить оптимизацию, то думаю точно на половину уменьшится :)

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