Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтр по определенным критериям, как реализовать? Как отфильтровать данные с mysql? 
:(
    Опции темы
dexterx
Дата 8.9.2008, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Подскажите пожалуйста как сделать фильтр БД?
Например у меня есть такая mysql БД:

___________________________________
| id | name | model | volume | price | color   |
--------------------------------------------------------
| 0  | BMW |    X5    |  2000   |10000 | black  |
| 1  | Opel | Vectra |  1500   | 19000 | black  |
| 2  | Audi |   Q7     | 2500    |150000| white |
___________________________________|

Нужно отсортировать например по весу:

вес:
от 0 до 1500
от 1500 до 2000
< 2000

Дальше например, по цене:
до 10 000$
от 10 000 до 20 000$
от 20 000 до 100 000$
< 100 000$

Дальше по маркам:
BMW
OPEL
AUDI
FoRD
....и т.д.


тоесть чтоб выводилось все данные с БД, а уже когда мы
нажимаем на определенный фильтр то данные отфильтрововались
соответственно параметрам данного фильтра!!!
Такой фильтр есть на сайте: hotline.ua
Помогите пожалуйста мне реализовать подобное.... 
PM MAIL   Вверх
bars80080
Дата 8.9.2008, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



ну это можно сделать просто с помощью запросов

Код

select * from table order by volume
select * from table order by price desc
...
один файл скрипта, который в зависимости от пришедших get-переменных выбирает из БД список товаров в определённой сортировке
PM MAIL WWW   Вверх
dexterx
Дата 9.9.2008, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Тоесть, я правильно понимаю?

<a href="../filtr.php?volume1=0&volume2=1500">от 0 до 1500</a>
<a href="../filtr.php?volume2=1500&volume3=2000">от 1500 до 2000</a>

а потом уже в файле filtr.php принимаешь их методом $_GET['volume']
и сортируешь БД соответственно полученных параметров?

а если клиент например хочет отсортировать по весу и + еще по цене,
как сделать чтоб сначала машины отсортировались по весу и с этих 
уже сортировались по цене?

PM MAIL   Вверх
bars80080
Дата 9.9.2008, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а это уже ссылки настраиваешь, так чтобы они работали как надо:

Код

<a href="?vol=1000">сортировка по весу от 1000</a>
<a href="?vol=2000">сортировка по весу от 2000</a>
<a href="?price=10000">сортировка по цене от 10000</a>
<a href="?price=20000&pricereverce=1">сортировка по цене от 20000 в обратном порядке</a>
<a href="?vol=1000&price=10000&ord1=price">сортировка по весу от 1000, по цене от 10000, вначале по цене</a>

// на приёме делается обработка:
Код

if(!empty($_GET['price']) && empty($_GET['reverce'])) $s = 'price>'.$_GET['price'].' order by price ';
if(!empty($_GET['price']) && !empty($_GET['reverce'])) $s = 'price<'.$_GET['price'].' order by price desc ';
...
if(!empty($_GET['price']) && !empty($_GET['vol'] && !empty($_GET['ord1']) && $_GET['vol'] == 'price') $s = 'price>'.$_GET['price'].' and volume>'.$_GET['vol'].' order by price, volume';

$sql = 'select * from table where '.$s;
ну, как видишь здесь убого, надо помозговать, чтобы запрос собирался более стройно и эффективно, но идея ясна
PM MAIL WWW   Вверх
dexterx
  Дата 9.9.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 8.9.2008

Репутация: нет
Всего: нет



Большое спасибо, буду сейчас пробовать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0666 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.