За последние 24 часа нас посетили 23580 программистов и 1543 робота. Сейчас ищут 989 программистов ...

Mysql запросы

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

  1. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Добрый день дорогие форумчане!
    Есть задача реализовать поиск для таблицы выводимой из Mysql (собираемая таблица состоит из 3 (по 2 будет идти поиск) таблиц Mysql).
    В таблице 6 полей - по 3 из них нужно сделать поиск.
    То есть поля могут, как все быть заполнены так и в вариации все, и не которые.
    Вот не могу понять, как мне правильно прописывать условие заполненности полей.
    И как в зависимости от заполненности этих полей формировать sql запрос и как правильно это делать?
    Как в запросе можно еще WHERE указывать для двух параметров?
    Подскажите пожалуйста мне или что нить почитать по этому поводу порекомендуйте
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  3. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Понял во общем сегодня день на форуме с юмором!
    Судя по сегодняшним ответам на посты.
    Будут предложения по моему вопросу всегда буду благодарен тем кто готов поделится)
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  5. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Благодарен буду читать!
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Вот пример выборки по двум параметрам в зависимости от того, заполнены ли соответствующие поля в форме:
    Код (PHP):
    1. <?php
    2. $title = isset($_POST['title']) ? trim($_POST['title']) : '';
    3. $user = isset($_POST['user']) ? trim($_POST['user']) : '';
    4. $where = array();
    5. if(!empty($title))
    6.     $where[] = '`title` = \'' . myescape($title) . '\'';
    7. if(!empty($user))
    8.     $where[] = '`user` = \'' . myescape($user) . '\'';
    9. $where = empty($where) ? '' : ' WHERE ' . implode(' AND ', $where);
    10. $sql = "SELECT * FROM `table`{$where} ORDER BY `date`";
    11.  
    12. // Экранирует текст для MySQL
    13. function myescape($str = '') {
    14.     if(get_magic_quotes_gpc())
    15.         $str = stripslashes($str);
    16.     $str = mysql_real_escape_string($str);
    17.     return($str);
    18. }
    19. ?>
    Если оба параметра пустые - будет выборка всей таблицы.
     
  7. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Спасибо большое очень нужно получилось!