Как вывести данные при фильтрации

Тема в разделе "Как сделать...", создана пользователем karen12, 27 ноя 2015.

  1. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1
    Есть скрипт который фильтрирует данные из mysql, нашел из интернета, но не знаю как вывести данные при фильтрации, поскольку выводит только текст виде запроса, вот код.


    Для начала должна быть таблица, по которой будет идти поиск. Пусть это будет упрощённая таблица для ноутбуков:

    • id - уникальный идентификатор.
    • price - цена.
    • manufacturer - производитель.
    • wi-fi - наличие Wi-Fi.
    Теперь разберём форму поиска:
    HTML:
    <form name="form" action="" method="post">
      <table>
        <tr>
          <td>Цена от:</td>
          <td><input type="text" name="price_start" /> рублей</td>
        </tr>
        <tr>
          <td>Цена до:</td>
          <td><input type="text" name="price_end" /> рублей</td>
        </tr>
        <tr>
          <td colspan="2">Производитель</td>
        </tr>
        <tr>
          <td>Apple</td>
          <td>
            <input type="checkbox" name="manufacturers[]" value="1" />
          </td>
        </tr>
        <tr>
          <td>Acer</td>
          <td>
            <input type="checkbox" name="manufacturers[]" value="2" />
          </td>
        </tr>
        <tr>
          <td>ASUS</td>
          <td>
            <input type="checkbox" name="manufacturers[]" value="3" />
          </td>
        </tr>
        <tr>
          <td>Наличие Wi-Fi:</td>
          <td>
            <input type="checkbox" name="wifi" />
          </td>
        </tr>
        <tr>
          <td colspan="2">
            <input type="submit" name="filter" value="Подобрать ноутбуки" />
          </td>
        </tr>
      </table>
    </form>
    PHP:
    <?php
      
    function addWhere($where$add$and true) {
        if (
    $where) {
          if (
    $and$where .= " AND $add";
          else 
    $where .= " OR $add";
        }
        else 
    $where $add;
        return 
    $where;
      }
      if (!empty(
    $_POST["filter"])) {
        
    $where "";
        if (
    $_POST["price_start"]) $where addWhere($where"`price` >= '".htmlspecialchars($_POST["price_start"]))."'";
        if (
    $_POST["price_end"]) $where addWhere($where"`price` <= '".htmlspecialchars($_POST["price_end"]))."'";
        if (
    $_POST["manufacturers"]) $where addWhere($where"`manufacturer` IN (".htmlspecialchars(implode(","$_POST["manufacturers"])).")");
        if (
    $_POST["wifi"]) $where addWhere($where"`wifi` = '1'");
        
    $sql "SELECT * FROM `my_table`";
        if (
    $where$sql .= " WHERE $where";
        echo 
    $sql;
      }
    ?>
     
  2. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Смотря как создаётся подключение к БД

    Код:
    $result = $db->query($sql);
     
  3. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1
    спасибо