Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/55: Рейтинг темы: голосов - 55, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96

Фильтр поиска для сайта

08.05.2017, 18:34. Показов 12067. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как организовать такой фильтр..
Может натолкнете на путь истинный?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2017, 18:34
Ответы с готовыми решениями:

Фильтр для поиска
Доброго времени суток Появилось желание сделать фильтр для поиска с выбором подходящих вариантов как в поисковых системах типа...

Движок поиска для самописного сайта
Есть самописный движок, необходимо организовать поиск по БД (mysql), по двум полям - русское название и название на английском языке. При...

Фильтр поиска
Хочу сделать фильтр по стране, городу, половой принадлежности и возрасту. Как это можно сделать? Я знаю как ищется по определенному...

51
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 18:36  [ТС]
С возможностью выбора нескольких значений. К примеру можно выбрать несколько районов..
0
35 / 35 / 11
Регистрация: 17.03.2017
Сообщений: 250
08.05.2017, 18:40
HTML5
1
2
3
<p>Выбор района: <input  name='имя для поля' type='checkbox'>ГГМ <input name ='имя для поля' type='checkbox'>BM3....</p>
 
<p>Колличество комнат: <input  name='имя для поля' type='checkbox'>1 <input name ='имя для поля' type='checkbox'>2....</p>
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 19:11  [ТС]
Мне бы обработчик написать.. Форма у меня есть.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 20:21
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<form method="post" action="">
    <p>Выбор района</p>
    <p>  
       <input type="checkbox" name="district[]" value="d1">ГГМ<br>
        <input type="checkbox" name="district[]" value="d2">ВМЗ<br>
        <input type="checkbox" name="district[]" value="d3">Выя<br> 
        <input type="checkbox" name="district[]" value="d4">Центр<br>
        <input type="checkbox" name="district[]" value="d5">Красный Камень<br>
        <input type="checkbox" name="district[]" value="d6">Вагонка<br>
        <input type="checkbox" name="district[]" value="d7">Тагилстой<br> 
        <input type="checkbox" name="district[]" value="d8">Северный<br>
   </p>
   <p>Количество комнат</p>
   <p>
        <input type="checkbox" name="count[]" value="c1">1<br>
        <input type="checkbox" name="count[]" value="c2">2<br> 
        <input type="checkbox" name="count[]" value="c3">3<br> 
        <input type="checkbox" name="count[]" value="c4">4<br> 
        <input type="checkbox" name="count[]" value="c5">5<br> 
        <input type="checkbox" name="count[]" value="cb5">более 5<br>
   </p>
   <p><input type="submit" name="sub" value="Отправить"></p>
  </form>
<?php 
if(isset($_POST['sub'])) {
    $district = implode("','",$_POST['district']);
    $count = implode("','",$_POST['count']);
    $sql = "select * from table_name where district in ('".$district."') and count in ('".$count."')";
    //...........
}
?>
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 20:48  [ТС]
Сделал по Вашему примеру.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if(isset($_POST['sub'])) {
    $district = implode("','",$_POST['district']);
    $count = implode("','",$_POST['count']);
    $result = "select * from choice_tb where district in ('".$district."') and count in ('".$count."')";
    //...........
    var_dump($result);
    if (mysql_num_rows($result)>0)
    {
        
      $row = mysql_fetch_array($result);
        
      do
      {
        
       echo '
       
       <p> <a href="view.php?id='.$row["id"].'">'.$row['adress'].'</a> </p>
       
       ';
        
      }  
        while($row = mysql_fetch_array($result));
        
    }
    
}
Выводит ошибку: Warning: mysql_num_rows() expects parameter 1 to be resource, string given in
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
08.05.2017, 21:44
1. Не создавайте дубли тем.

Цитата Сообщение от krayder Посмотреть сообщение
//...........
2. Вам показали sql-запрос, теперь нужно его запустить с помощью mysql_query.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 22:28
Цитата Сообщение от krayder Посмотреть сообщение
Сделал по Вашему примеру.
а где запрос в базу?
я дал только пример самого запроса select(неужели не видно)
нужно еще подключится к базе и выполнить запрос
как-то так
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        <?php
        if (isset($_POST['sub'])) {
            $mysqli = new mysqli('localhost', 'login', 'password', 'db');
            if ($mysqli->connect_error) {
                die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
            }
 
            $district = implode("','", $_POST['district']);
            $count = implode("','", $_POST['count']);
           
            $sql = "select * from table_name where district in ('" . $district . "') and count in ('" . $count . "')";
            $res = $mysqli->query($sql);
            if ($mysqli->errno) {
                die('Select Error (' . $mysqli->errno . ') ' . $mysqli->error);
            } else {
                while($row = $res->fetch_assoc()) {?>
                    <p> <a href="view.php?id=<?php echo $row['id'];?>"><?php echo $row['adress'];?></a> </p>
                <?php }
            }
        }
        ?>
Добавлено через 28 минут
протупил немного. блок который в else пропишите без else. или с else, но тогда вместо die, echo
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 22:31  [ТС]
Выводит пустую страницу.. Хотя поля в базе есть.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 22:33
p.s.
это просто пример. если будет ошибка, при подключении или при выполнении запроса, скрипт выведет сообщение и прекратит работу.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 22:35
Цитата Сообщение от krayder Посмотреть сообщение
"select * from choice_tb where district in ('".$district."') and count in ('".$count."')";
вы, выполняете этот запрос? точь в точь?
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 22:35  [ТС]
"select * from choice_tb where rayon in ('Кр.камень') and level in ('4')"Вот что выводит через var_dump.
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 22:36  [ТС]
$sql = "select * from choice_tb where rayon in ('" . $rayon . "') and level in ('" . $level . "')";
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 22:38
Цитата Сообщение от krayder Посмотреть сообщение
Вот что выводит через var_dump.
правильно
Цитата Сообщение от krayder Посмотреть сообщение
$result = "select * from choice_tb where district in ('".$district."') and count in ('".$count."')";
//...........
var_dump($result);
вы наконец подключились к базе, выполнили запрос?
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 22:45  [ТС]
Пустая страница.

Добавлено через 2 минуты
Отрывок формы <input type="checkbox" name="rayon[]" value="Кр.камень">Кр.камень<br>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 22:52
покажите полностью код, который сейчас используете.
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 22:59  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="post" action="input.php">
    <p>Выбор района</p>
    <p>  
       <input type="checkbox" name="rayon[]" value="ГГМ">ГГМ<br>
        <input type="checkbox" name="rayon[]" value="ВМЗ">ВМЗ<br>
        <input type="checkbox" name="rayon[]" value="Выя">Выя<br> 
        <input type="checkbox" name="rayon[]" value="Центр">Центр<br>
        <input type="checkbox" name="rayon[]" value="Кр.камень">Кр.камень<br>
       
   </p>
   <p>Количество комнат</p>
   <p>
        <input type="checkbox" name="level[]" value="1">1<br>
        <input type="checkbox" name="level[]" value="2">2<br> 
        <input type="checkbox" name="level[]" value="3">3<br> 
        <input type="checkbox" name="level[]" value="4">4<br> 
        <input type="checkbox" name="level[]" value="5">5<br> 
        <input type="checkbox" name="level[]" value="cb5">более 5<br>
   </p>
   <p><input type="submit" name="sub" value="Отправить"></p>
  </form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
 
 
 
        if (isset($_POST['sub'])) {
            $mysqli = new mysqli('localhost', 'admin', '1234', 'choice');
            if ($mysqli->connect_error) {
                die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
            }
 
            $rayon = implode("','", $_POST['rayon']);
            $level = implode("','", $_POST['level']);
           
            $sql = "select * from choice_tb where `rayon` in ('" . $rayon . "') and `level` in ('" . $level . "')";
            $res = $mysqli->query($sql);
            var_dump($sql);
            if ($mysqli->errno) {
                echo('Select Error (' . $mysqli->errno . ') ' . $mysqli->error);
            } else {
                while($row = $res->fetch_assoc()) {?>
                    <p> <a href="view.php?id=<?php echo $row['id'];?>"><?php echo $row['adress'];?></a> </p>
                <?php }
            }
        }
        
?>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 23:07
попробуйте так
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        <?php
        if (isset($_POST['sub'])) {
            $mysqli = new mysqli('localhost', 'admin', '1234', 'choice');
            if ($mysqli->connect_error) {
                die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
            }
 
            $rayon = implode("','", $_POST['rayon']);
            $level = implode("','", $_POST['level']);
 
            $sql = "select * from choice_tb where `rayon` in ('" . $rayon . "') and `level` in ('" . $level . "')";
            $res = $mysqli->query($sql);
            var_dump($sql);
            if ($mysqli->errno) {
                echo 'Select Error (' . $mysqli->errno . ') ' . $mysqli->error;
            } else {
                if($res) {
                    while ($row = $res->fetch_assoc()) {?>
                    <p> <a href="view.php?id=<?php echo $row['id']; ?>"><?php echo $row['adress']; ?></a> </p>
                    <?php }
                } else {?>
                    <p>данных в базе не найдено</p>
               <?php }
            }
        }
        ?>
0
0 / 0 / 1
Регистрация: 11.08.2015
Сообщений: 96
08.05.2017, 23:28  [ТС]
string(75) "select * from choice_tb where `rayon` in ('Кр.камень') and `level` in ('4')"
Все что выводит..

Добавлено через 4 минуты
Пустая страница приходит..

Добавлено через 11 минут
Может у меня версия PHP старая?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.05.2017, 23:36
в начало файла
PHP
1
2
error_reporting(E_ALL);
ini_set('display_errors', 1);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2017, 23:36
Помогаю со студенческими работами здесь

Фильтр поиска
Всем не спящим привет. Я все никак не могу сделать нормальный запрос к бд, что бы работал фильтр. Может кто что подскажет. И так есть у нас...

Фильтр поиска из SQL
Добрый день . Есть сайт заявок нужно реализовать поиск по категориям . Никак немогу разобраться . Суть такова Выбираем несколько...

Фильтр для сайта
Всем привет! Скажу сразу я не опытный программист PHP и если что-то не так, прошу не агрится. Есть код с сайта, в нем разметка селект от...

Ядро для умного поиска. Алгоритм. Создать поиск для сайта
Доброго времени суток. Хочу реализовать поиск по статьям на сайте. И надеюсь на ваше помощь. Есть таблица, где мы храним айди...

Скрипт (система) поиска для сайта
Подскажите ХОРОШИЙ скрипт поиска по сайту. Сайт написан на php. Все страницы на php. Не предлагайте GOOGLE, пожалуйста! Добавлено...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru