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

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

08.05.2017, 18:34. Показов 12154. Ответов 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
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
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
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru