powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как бы поэффективнее создать запрос к Мускулу?
2 сообщений из 2, страница 1 из 1
Как бы поэффективнее создать запрос к Мускулу?
    #32498590
Cyclone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу узнать мнение ГУРУ, по такому вопросу:

Есть форма, в которой выбираются критерии для запроса:

авторПроизводитель
<select class=norm size=1 name="did" >
<option selected value="none">Выберите производителя</option>
<option selected value="1">Sony</option>
<option selected value="2">Panasonic</option>
</select>

Модель
<input class=norm maxlength=23 size=13 name="model">

Цена от:
<select class=norm size=1 name="price" >
<option selected value="1000">от 1.000</option>
<option value="2000">2.000</option>
<option value="3000">3.000</option>
<option value="4000">4.000</option>

</select>
Цена до
<select class=norm size=1 name=price2>
<option selected value="4000">до 4.000 /option>
<option value="5000">5.000</option>
<option value="6000">6.000</option>
<option value="7000">7.000</option>
<option value="over">свыше 7000</option>
</select>

и еще куча полей.

Причем если поле не выбрано (=='none'), то в запросе оно не учавствует.

Как поэффективнее скриптом пхп разобрать форму и составить запрос к мускулу, а то я теряюсь... особенно с интервалом цен.


Прикинул вот так:

авторif($did !="none") { $plus .=" AND did='$did'" ;}
if($model !='') { $plus .=" AND model='$model'" ;}
if($price2=='over') {$price2 =='16000';}
$plus .=" AND price<='$price1' AND price >='$price2'";

mysql_query("SELECT FROM table WHERE" .$plus );

Но как -то коряво и проблем может быть, причем что-то к оператору WHERE приписать надо...

Поможите, все голову сломал....
...
Рейтинг: 0 / 0
Как бы поэффективнее создать запрос к Мускулу?
    #32509286
Фотография Sehensucht! (потерял пароль)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу цены - можно так:

1) заменить два поля price1 и price2 на одно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<select class=norm size= 1  name=price> 
<option selected value="1">до  4 . 000  /option> 
<option value="2"> 4 . 000  -  5 . 000 </option> 
<option value="3"> 5 . 000  -  6 . 000 </option> 
<option value="4"> 6 . 000  -  7 . 000 </option> 
<option value="5">свыше  7000 </option> 
</select>

2) создать массив директивы WHERE:

Код: plaintext
1.
2.
3.
4.
$where = array( 1 =>"price < 4000",
                2 =>"price BETWEEN 4000 AND 5000",
               ...
                5 =>"price > 7000");

и в запросе добавить:

Код: plaintext
1.
$sql .= " AND " . $where[$_POST[price]];

А по поводу того, что к запросу надо дописывать условия:
1) можно сделать булевую переменную, значение которой поставить в тру при начале использования директивы WHERE
2) можно сразу добавить условие

Код: plaintext
WHERE  1 = 1 

и дальше добавлять все условия через AND
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как бы поэффективнее создать запрос к Мускулу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]