За последние 24 часа нас посетили 18908 программистов и 1636 роботов. Сейчас ищут 795 программистов ...

помогите разобраться с апострофами

Тема в разделе "PHP для новичков", создана пользователем blow, 14 мар 2009.

  1. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    нужно собирать строку запроса SQL из нескольких переменных, как правильно написать данный код


    $q = mysql_query ("

    $q .= SELECT * FROM rent WHERE `categ` = 'Lettings' AND `price` BETWEEN $min_week AND $max_week;

    $q .= ORDER BY `rent`.`id` DESC");

    спасибо
     
  2. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    blow

    А зачем????
     
  3. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    нужно будет оператор if()
     
  4. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    PHP:
    1.  
    2. <?php
    3. $q = mysql_query ("SELECT * FROM rent
    4.                             WHERE `categ` = 'Lettings'
    5.                             AND `price` BETWEEN '$min_week'
    6.                             AND '$max_week'
    7.                             ORDER BY `rent`.`id` DESC
    8.                             ");
    9. ?>
    10.  
    Как вариант...
     
  5. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    blow
    Зачем тебе такая порнография в SQL запросе!
    Причем тут оператор IF
     
  6. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    если есть другие варианты - рад выслушать!
    есть простой поиск, в поиске есть критерий район, если район выбран "любой" тогда не выводить WHERE rajon = centr
     
  7. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    Сделай так
    if(район == любой)
    {
    //твой запрос в этом варианте
    }
    else
    {
    //ну тут тоже что тебе нужно
    }
     
  8. kuliev

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

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    blow
    А можно задачу поконкретнее, чтобы из тебя все клешнями не вытаскивать.
    Телепатов здесь нет!!!
     
  9. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    alexy, может появится больше опций, слишком много if-ов получиться. хотелось бы if использоваться прямо внутри строки
     
  10. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    тогда используй switch, либо
    if( улсловие )
    {
    //code
    }
    elseif ( условие )
    {
    //code
    }
    ...
    else
    {
    //code
    }
    опиши задачу конкретнее, а то так гадать непонятно о чем...
     
  11. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    есть форма поиска, один из пунктов в ней - категория(categ) . Положим есть следующие категории Sales & Lettings . Я написал следующий код:

    $categ = $_POST[categ];
    ...
    $q = mysql_query ("SELECT * FROM rent WHERE `categ` = $categ ... ");

    в форме поиска есть в 3 опции - Sales, Lettings и Any

    Как сделать так, что бы при выборе Any переменная $categ имела значение всего, вобщем выводилось всё. пробывал присвоить "*" ничего не вышло.

    Решил генерировать строку запроса через if-ы, но не получилось с арфографией (см. 1-й пост)
     
  12. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    надо было не * ставить, а знак %

    либо вообще тогда опустить выбор категории в SQL запросе.
     
  13. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    странно, но `categ` = '%' не выводит ничего
     
  14. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    и не будет. categ like '%' - будет, а = -не будет. Но это все фигня. А не фигня вот что.

    sql запрос это просто строка. В первом своем сообщении ты был близок к высшей истине. на самом деле это выглядит так:

    сперва собирается сам sql запрос - обычной конкатенацией.
    PHP:
    1. <?
    2. $sql="select * from  rent "
    3. if ($categ) $sql.="where categ=$categ ";
    4. $sql.="order by id ".($order=='desc'?"desc":"asc");
    5.  
    а потом этот запрос отправляется на выполнение:

    PHP:
    1. <?
    2. $q = mysql_query ($sql);
     
  15. blow

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

    С нами с:
    11 янв 2008
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    London
    спасибо!