За последние 24 часа нас посетили 17967 программистов и 1650 роботов. Сейчас ищут 1180 программистов ...

Фильтр по параметрам

Тема в разделе "MySQL", создана пользователем veg, 17 апр 2017.

  1. veg

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

    С нами с:
    14 май 2011
    Сообщения:
    15
    Симпатии:
    0
    Как сделать запрос к базе, чтобы произвести выборку по нескольким параметрам: продукт, брэнд, тип, цена, цвет?
    Такой вариант выдает результат, только если выбран 1 бренд, одна цена и один тип. При выборе двух брендов, ничего не выдает.
    PHP:
    1. $select = 'SELECT *';
    2. $from = ' FROM products';
    3. $where = ' WHERE TRUE';
    4. $opts = isset($_POST['filterOpts'])? $_POST['filterOpts'] : array('');
    5. if (in_array("hp", $opts)){
    6. $where .= " AND brands = 'hp'";
    7. }
    8. if (in_array("lenovo", $opts)){
    9. $where .= " AND brands = 'lenovo'";
    10. }
    11. if (in_array("apple", $opts)){
    12. $where .= " AND brands = 'Apple'";
    13. }
    14. if (in_array("Computer", $opts)){
    15. $where .= " OR products = 'Computer'";
    16. }
    17. if (in_array("Laptop", $opts)){
    18. $where .= " AND products = 'Laptop'";
    19. }
    20. if (in_array("pendrive", $opts)){
    21. $where .= " AND products = 'pendrive'";
    22. }
    23. if (in_array("price1", $opts)){
    24. $where .= " OR price = '10000'";
    25. }
    26. if (in_array("price2", $opts)){
    27. $where .= " AND price = '20000'";
    28. }
    29. if (in_array("price3", $opts)){
    30. $where .= " AND price = '30000'";
    31. }
    32. $sql = $select . $from . $where;
     

    Вложения:

  2. retvizan

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

    С нами с:
    27 дек 2013
    Сообщения:
    68
    Симпатии:
    22
    and и or местами поменяй