Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Применение разных видов фильтрации в одном скрипте

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Применение разных видов фильтрации в одном скрипте
Имя
Сообщение << Старые топики   Новые топики >>
Применение разных видов фильтрации в одном скрипте - 2007-10-05 10:58:20.176666   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Более менее разобравшись с фильтрацией и сортировкой возник такой вот вопрос, каким образом можно в одном скрипте реализовать фильтрацию по нескольким параметрам, т.е. значит емеется фильтрация по дате:

$db = pg_query("select * from konkurs where datep&gt;='".$date."' and datep&lt;='".$end_date."' order by datep DESC");
вывод идет в табличку:

[size=1]$a=0; while ($rez = pg_fetch_array($db)){ echo "&lt;tr align=center&gt;"; { $a++; echo '&lt;tr align=center class="row' . ($a%2+1) . '"&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;&lt;center&gt;' .$rez['id']. '&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['date'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;&lt;center&gt;' .$rez['clients'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['tipe'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['links'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;&lt;center&gt;' .$rez['op'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['price'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['datep'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['otv'].'&lt;br&gt;&lt;/td&gt;'; echo '&lt;td class="events"&gt;&lt;p class="text"&gt;' .$rez['rez'].'&lt;br&gt;&lt;/td&gt;'; } echo '&lt;/tr&gt;'; }[/size] echo '&lt;/table&gt;';
Как можно прикрутить еще фильтрацию, ну допустим, по исполнителю, т.е. сперва фильтруем по дате, а уже в отфильтрованном периоде фильтруем по фамилии. Как это можно реализовать в данном случае. Спасибо.
Post #: 1
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 12:56:16.310000   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Во-первых не фильтрация, а сортировка. А во-вторых, ЗАЧЕМ?
Post #: 2
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 13:03:15.133333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Во первых не сортировка а фильтрация! А во вторых для удобства чтения динного списка, чтобы остались только нужные записи!
Post #: 3
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 13:13:36.540000   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Какие именно?
Post #: 4
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 13:17:07.513333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Я же все описал! Есть фильтрация по дате, как сделать так чтобы отфильтровав по дате можно было отфильтровать по фамилии?
Post #: 5
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 13:27:41.560000   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Ну припиши ещё условие в запросе, в чём проблема?
Post #: 6
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 14:12:17.940000   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Блин, ну если бы все так просто было тады бы я не спрашивал! Покажи пример! =)
Post #: 7
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 15:46:02.910000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
Это что ли?
 
"select * from konkurs where datep>='".$date."' and datep<='".$end_date."' and фамилия='блабла' order by datep DESC"
 
или
 
"select * from konkurs where datep>='".$date."' and datep<='".$end_date."' and фамилия like 'что-нибудь' order by datep DESC"
Post #: 8
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 16:42:05.373333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Да я тоже об этом думал, но не срабатывает почемуто!

$db = pg_query("select * from konkurs where datep>='".$date."' and datep<='".$end_date."' and op='".$opp."' order by datep DESC");

В табличке вообще пусто!
Post #: 9
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 17:01:19.010000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
Значит в таблице в БД нет данных, удовлетворяющих условию.
Post #: 10
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 18:18:18.236666   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Точняг, спасибо брачис! =)
Post #: 11
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 18:20:55.976666   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Как сделать так, что бы если фамилия не указана то условие не учитывается?
Post #: 12
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-05 21:31:40.396666   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
bla-bla-bla where фамилия not in '' (две кавычки)
Post #: 13
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 10:36:18.133333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
А можно конкретный примерчик? Очень буду благодарен!
Post #: 14
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 10:50:22.763333   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
quote:

Как сделать так, что бы если фамилия не указана то условие не учитывается?

Сначала указать надо, фамилия не указана где? В записи таблицы базы данных? Или в запросе к БД?
Post #: 15
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 11:02:34.266666   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Значит, скрипт выводит инфу из БД, там несколько полей в том числе дата и фамилия. В данный момент осуществляется фильтрация по дате и по фамилии. Но фильтрация по фамилии происходит одновременно с фильтрацией по дате, т.е. если я укажу показать все данные за март 2005 года, то скрипт ничего не покажет пока я не выбиру фамилию, и тогда он покажет все данные по данной фамилии за март 2005 года, а мне необходимо что бы фильтрация по фамилии была как дополнительная опция, т.е. взял отфильтровал по дате, посмотреле все данные за март 2005 года, захотел посмотреть данные по Иванову за март выбрал его из списка и отфильтровал март 2005 по Иванову.

запрос сейчас выглядит вот так:

$db = pg_query("select * from konkurs where datep>='".$date."' and datep<='".$end_date."' and op<='".$opp."' order by datep DESC");
Post #: 16
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 12:41:25.216666   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
добавь строку в скрипт
if(!$familiya) $familiya="%";
 
а далее в запрос
……. and familiya like '$familiya' …….
 
Ну или как там поле с фамилией называется?
Post #: 17
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 14:35:39.483333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Нет, не прокатывает! Вообще ничего не отображается!
Post #: 18
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 15:10:55.850000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
Напиши свой запрос с этим дополнением. Где-то ошибка скорее всего
Post #: 19
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 15:14:46.246666   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
if(!$opp) $opp="%";
$db = pg_query("select * from konkurs where datep>='".$date."' and datep<='".$end_date."' and opp like '".$opp."' order by datep DESC");
Post #: 20
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 16:01:42.753333   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
А поле с фамилией случайно не op называется? В предыдущем запросе ты так писал, а сейчас opp
Вообще, запрос по синтаксису правильный.
Post #: 21
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 16:54:38.676666   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Все правильно $opp, тока я вот тожа понять не могу, как оно енто делается! =(
Post #: 22
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 16:55:02.773333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Мож еще какие варианты есть?
Post #: 23
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 17:14:02.143333   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
Ну чтобы убедиться, что запрос правильный и выполняется, проверь, что выведет функция pg_last_error($connetcion).
Post #: 24
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 17:53:12.520000   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22


Warning: pg_query(): Query failed: ERROR: column "opp" does not exist in ej.php on line 219 Warning: pg_fetch_array(): supplied argument is not a valid PostgreSQL result resource in ej.php on line 224
Post #: 25
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 17:56:35.303333   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
quote:

column "opp" does not exist in ej.php

Я же говорю, что колонки "opp" не существует в твоей таблице:D:D
 
Ошибся в названии, исправь и всё заработает.
Post #: 26
RE: Применение разных видов фильтрации в одном скрипте - 2007-10-08 18:10:09.043333   
[nux]

Сообщений: 557
Оценки: 0
Присоединился: 2004-04-22 02:59:22
Блин, вот я чайник, спасибо!!!!!!! )))))))) Просто вчера день был тяжелый! ((
Post #: 27
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Применение разных видов фильтрации в одном скрипте







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.