За последние 24 часа нас посетили 58097 программистов и 15329 роботов. Сейчас ищут 1498 программистов ...

Запрос SQL

Тема в разделе "PHP и базы данных", создана пользователем _Валерий_, 28 авг 2007.

  1. _Валерий_

    _Валерий_ Активный пользователь

    С нами с:
    29 июл 2007
    Сообщения:
    21
    Симпатии:
    0
    Адрес:
    Санкт Петербург
    Подскажите новичку.

    $query = "
    SELECT *
    FROM `Название таблицы`
    WHERE `Столбец` = 'Запрос'
    ";

    Как вместо 'Запрос' вставить значение из формы $_POST[...]?
     
  2. Davil

    Davil Guest

    $query = "
    SELECT *
    FROM `Название таблицы`
    WHERE `Столбец` = $_POST['хз_че_там_у_тебя']
    ";
     
  3. Angerslave

    Angerslave Guest

    $query = "
    SELECT *
    FROM `Название таблицы`
    WHERE `Столбец` = ".mysql_escape_string($_POST['хз_че_там_у_тебя'])."
    ";

    Так безопасно.
     
  4. _Валерий_

    _Валерий_ Активный пользователь

    С нами с:
    29 июл 2007
    Сообщения:
    21
    Симпатии:
    0
    Адрес:
    Санкт Петербург
    Спасибо, все оказывается просто.
     
  5. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Подскажите как можно ввести данные сразу в несколько таблиц:
    ПРИМЕР:
    Код (Text):
    1. $query ="insert into $sudno values (sudnoid,'$name','$shtatid');
    2.                                insert into $reys values (reysid,'$nomer');";
    Спасибо за внимание и ващу помощь!
     
  6. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.370
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    несколько запросов.
     
  7. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Да скажем есть поле
    Код (Text):
    1.  
    2. <Textarea name=test cols="25" rows="25></textarea>
    Внего пишем запрос на заполнение нескольких таблиц
    Код (Text):
    1.  
    2. insert into zurnal values
    3. (null,'1', '1','1','1','1','2007-08-20','2007-08-31'),
    4. (null,'2', '2','2','2','2','2007-03-15','2007-04-05'),
    5. (null,'3', '3','3','3','3','2007-09-27','2007-09-30'),
    6. (null,'4', '4','4','4','4','2007-06-20','2007-07-13'),
    7. (null,'5', '5','5','5','5','2007-09-30','2007-10-03');
    8.  
    9.  
    10. insert into sudno values
    11. (null,'kalipso','1'),
    12. (null,'cooper','2'),
    13. (null,'admiral','3'),
    14. (null,'gabriel','4'),
    15. (null,'kasper','5');
    16.  
    17. insert into shtat values
    18. (null,'124'),
    19. (null,'135'),
    20. (null,'452'),
    21. (null,'421'),
    22. (null,'235');
    23.  
    24. insert into reys values
    25. (null,'123'),
    26. (null,'124'),
    27. (null,'125'),
    28. (null,'126'),
    29. (null,'127');
    30.  
    31. insert into zakaz values
    32. (null,'OOO "PALADA" ','Ivanov','88482285534','1'),
    33. (null,'OAO "LADA" ','Petrov','88482285535','2'),
    34. (null,'ZAO "ALDIS" ','Sidorov','88482285536','3'),
    35. (null,'OOO "PILOT" ','Smirnov','88482285537','4'),
    36. (null,'OOO "COOL" ','Kuliev','88482285538','5');
    37.  
    38. insert into gruz values
    39. (null,'bumaga','12345'),
    40. (null,'Zerno','14545'),
    41. (null,'Mazut','17845'),
    42. (null,'Benzin','19545'),
    43. (null,'Drova','17445');
    44.  
    45. Insert into kapitan values
    46. (null,'Ivan','Ivanov','Ivanovihc','1'),
    47. (null,'Petrov','Peter','Petrovich','2'),
    48. (null,'Sidorov','Semen','Semenovich','3'),
    49. (null,'Sergey','Smirnov','Ivanovihc','4'),
    50. (null,'Aleksey','Kuliev','Shahinovich','5');
    Код (Text):
    1.  
    2. mysql_connect($hostname,$username,$password) or die ("ERROR CONNECT DB");
    3.  //Проверяем есть ли базаданных с таким названием
    4. @mysql_select_db("$DB") or die ("Такой базыданных нет обратитесь к администратору");
    5. //Вводим данные в таблицу базыданных
    6. $query ="$test";
    7.  
    8.  
    9. //Записываем
    10. $result = MYSQL_QUERY($query);
    11.  
    12. $line=mysql_query("$test");
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    mysql_query() может выполнить только ОДИН запрос за раз.

    RTFM, блин...
     
  9. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    А как мона реализовать чтобы сразу в несколько таблиц забить данные???
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    mysql_query(INSERT_РАЗ);
    mysql_query(INSERT_ДВА);
     
  11. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    К сожалению непрет))))
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    а по другому НИКАК.
     
  13. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Спасибо за помощь!!! Скоро еще чтонить задам! )))
     
  14. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    почему? можно написать обёртку для БД которая будет парсить все инсерты и по одному скармливать mysql_query (как в phpMyAdmin) и потом долго себя убеждать что все запросы выполнились за 1 раз
     
  15. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Как примерно это выглядит покажите:
     
  16. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    это лень самому посмотреть или что?
     
  17. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    634
    Симпатии:
    0
    Адрес:
    Белхород
    а можно же триггер написать, но это если СУБД позволяет
     
  18. Stasrot1

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

    С нами с:
    26 сен 2007
    Сообщения:
    119
    Симпатии:
    0
    Адрес:
    Тут недалеко, гдето вон за той горой!
    Есть еще один странный но весьма действенный метод: Вызываешь по сотовому НЛО (UFO) и просишь их если разглядишь, чтоб те все пропарсили и пропатчили, а ты тем временем займись парой десятков неудачников! А потом возьми все с блюдечка!
    Это шутка такая была! Немного не в тему, но все таки один раз запрос, потом второй раз запрос, и только так! Документацию почитайте по MySQL, они только думают и строят планы по реализации механизма, который столь желанен! Во! :)
     
  19. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.783
    Симпатии:
    0
    Я недавно писал функцию для разбора запросов. Комментарии не поддерживаются, а так, вроде, работает.
    PHP:
    1. <?php
    2. $query = "USE test; INSERT INTO `text` VALUES(';;\';;Text;'); SELECT * FROM `text` WHERE `str` LIKE '%;%';";
    3. print_r(prepQuery($query));
    4.  
    5. function prepQuery($query) {
    6.     $query = str_replace('%', '%%', $query);
    7.     $start = 0;
    8.     $stop = 0;
    9.  
    10.     for ($i = 0; $i < strlen($query); $i++) {
    11.         if (!$start) {
    12.             if ($query{$i} == '\'' && $query{($i - 1)} != '\\') {
    13.                 $start = $i;
    14.             }
    15.         } else {
    16.             if ($query{$i} == '\'' && $query{($i - 1)} != '\\') {
    17.                 $stop = $i;
    18.             }
    19.         }
    20.  
    21.         if ($stop) {
    22.             $str = substr($query, $start, $stop - $start + 1);
    23.             $nstr = str_replace(';', '%s', $str);
    24.             $query = str_replace($str, $nstr, $query);
    25.             $i = $start + strlen($nstr);
    26.             $start = 0;
    27.             $stop = 0;
    28.         }
    29.     }
    30.  
    31.     $queries = explode(';', $query);
    32.  
    33.     foreach ($queries as $k => &$v) {
    34.         $v = trim($v);
    35.  
    36.         if (empty($v)) {
    37.             unset($queries[$k]);
    38.         }
    39.     }
    40.  
    41.     foreach ($queries as &$query) {
    42.         $subq = array();
    43.  
    44.         for ($i = 0; $i < substr_count($query, '%s'); $i++) {
    45.             $subq[] = ';';
    46.         }
    47.  
    48.         $query = vsprintf($query, $subq);
    49.     }
    50.  
    51.     return $queries;
    52. }