За последние 24 часа нас посетили 62115 программистов и 1599 роботов. Сейчас ищут 876 программистов ...

Как передать значения переменных в запрос

Тема в разделе "PHP для новичков", создана пользователем shalx, 15 май 2014.

  1. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    Код (Text):
    1. $res = $DB->query('SELECT * FROM fff WHERE dat BETWEEN $ap AND $bj);
     
  2. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Дату уже поменял?
     
  3. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    Конечно поменял
    Код (Text):
    1. $a = c("dateTime1")->date;
    2. $b = c("dateTime2")->date;
    3. $p = explode("/", $a);
    4. $ap = $p[2].'-'.$p[0].'-'.$p[1];
    5. $j = explode("/", $b);
    6. $bj = $j[2].'-'.$j[0].'-'.$j[1];
     
  4. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Да не тут. А в предыдущей теме)
     
  5. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    модер говорит что не нужно сам отвечать на собственные вопросы :)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Нужно!
     
  7. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    код перед вами
     
  8. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Да и *** с ним. )) Никаких обсуждений пока не расскажешь как даты менял
     
  9. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    ok piker вiводил неправильный формат 05/30/2014 я разобрал
    Код (Text):
    1. $p = explode("/", $a);
    и построил заново так
    Код (Text):
    1. $bj = $j[2].'-'.$j[0].'-'.$j[1];
    вот и всё
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    скукота
     
  11. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    согласен, вопрос по синтаксису , но если не трудно ответьте пожалуйста ках вписать переменные в запрос
    Код (Text):
    1. $res = $DB->query('SELECT * FROM fff WHERE dat BETWEEN $ap AND $bj ');
     
  12. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Всё это очень познавательно. Но я не это имел ввиду. Ты ещё предыдущую тему не закрыл а уже новую создал. (
     
  13. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    вот так
    Код (PHP):
    1. $res = $DB->query("SELECT * FROM fff WHERE dat BETWEEN $ap AND $bj ");
     
  14. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    код не работает , а как закрыть тему
     
  15. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Вежливо.
     
  16. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
  17. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Ну начнёмс. В переменных как я понял даты. Проверь правильно ли склеены даты. Выведи эхом и подставь результат вывода вместо переменных. Если запрос отработает. Значит бяда тут:
    Код (PHP):
    1. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '$ap' AND '$bj' ");
    2. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '".$ap."' AND '".$bj."' ");
    3. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN {$ap} AND {$bj} ");
     
  18. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    Они склеены правильно , 1 и 2 вариант ничего не делают , 3 выдаёт ошибку
     
  19. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Ну ты даты то свои, подставил в запрос вместо переменных?
     
  20. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    Да и отлично работают
     
  21. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Ну вот если работает это:
    Код (PHP):
    1. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '2014-04-14' AND '2014-05-14' "); 
    то будет работать и это:
    Код (PHP):
    1. $ap = "2014-04-14";
    2. $bj = "2014-05-14";
    3. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '$ap' AND '$bj' "); 
    поэтому и надо эхом вывести значение и подставить:
    Код (PHP):
    1.  
    2. echo $ap;
    3. echo $bj;
    4. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '$ap' AND '$bj' "); 
    потому как в твоих переменных могут оказатся значения которых физически нет в таблице поэтому и результат работы запроса нулевой.
     
  22. shalx

    shalx Новичок

    С нами с:
    15 фев 2014
    Сообщения:
    110
    Симпатии:
    0
    переменную поставил на echo - результат выдается , но запрос не хочет делать , в базе тож все впорядке . че за
     
  23. dapperkop

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

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Блин, код покажи. Выложил один запрос - гадай, что ты там не так делаешь.
     
  24. BaranPHP

    BaranPHP Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    356
    Симпатии:
    0
    Вот то что выдало эхо . Есть такая запись в БД? Если подставить в запрос то что выдало эхо - запрос работает?
    Код (PHP):
    1. echo $ap;//вывело 2014-01-01 
    2. echo $bj;// 
    3. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '2014-01-01 ' AND '$bj' "); // подставляешь в запрос вот видишь тут с пробелом вывело  
    Добавлено спустя 5 минут 1 секунду:
    потому как если $ap == "2014-01-01 " а в БД такой записи в колонке `dat` нет, то запрос возвращает 0 строк. Сам по себе запрос рабочий просто не находит условия. Понятно?
     
  25. dapperkop

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

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    [​IMG]
    Это просто борода... Ты хочешь увидеть результаты запроса? Или что?
    Код (PHP):
    1. $res = $DB->query("SELECT * FROM `fff` WHERE `dat` BETWEEN '2014-01-01 ' AND '$bj' ");
    2. if ($res === false) {
    3.     echo $DB->error;
    4. } else {
    5.     while ($row = $res->fetch_assoc()) {
    6.         echo '<pre>'; var_dump($row); echo '</pre>';
    7.     }
    8. }
    9.