|
|
|
| Есть форма, из которой я получаю данные методом POST с чекбоксов (С1-4) и текстовых полей (S1-4)
и формирую из них строчку запроса к БД
<?php
$num=0;
if ($num==0 and $C1=='ON') {$num=1; $q1="T=$S1";};
if ($num==0 and $C2=='ON') {$num=1; $q2="U=$S2";}
elseif ($C2=='ON')$q2=" and U=$S2";
else {$q2='';};
if ($num==0 and $C3=='ON') {$num=1; $q3="V=$S3";}
elseif ($C3=='ON')$q3=" and V=$S3";
else {$q3='';};
if ($num==0 and $C4=='ON') {$num=1; $q4="W=$S4";}
elseif ($C4=='ON')$q4=" and W=$S4";
else {$q4='';};
echo $q1, $q2, $q3, $q4;
?>
|
можно ли эту махину каким то образом уменьшить? | |
|
|
|
|
|
|
|
для: MIchail1982
(29.11.2006 в 17:52)
| | Можно. Но проще будет переделать форму.
<br/><input type=checkbox name="C[]" value=T ><input name=T >
<br/><input type=checkbox name="C[]" value=U ><input name=U >
<br/><input type=checkbox name="C[]" value=V ><input name=V >
<br/><input type=checkbox name="C[]" value=W ><input name=W >
|
foreach($_POST['C'] as $cb) $list[] = "$cb=".$_POST[$cb];
$expr = implode(' and ', $list);
echo $expr;
|
Это если без проверки входных данных. | |
|
|
|
|
|
|
|
для: Trianon
(29.11.2006 в 18:00)
| | неполучится, запрос будет выглядеть так
and T like ... and W like...
а надо так
T like ... and W like...
тоесть про первом попадании на включенный чекбокс and не должен ставится | |
|
|
|
|
|
|
|
для: MIchail1982
(13.12.2006 в 00:48)
| | Вы сперва подумайте, потом попробуйте, а потом уж пишите, получилось или нет. | |
|
|
|
|
|
|
|
для: MIchail1982
(13.12.2006 в 00:48)
| | Функция implode() помещает первый аргумент между элементами массива из второго аргумента, поэтому ведущего and в WHERE-условии не будет, Trianon предложил рабочее решение - попробуйте его использовать. | |
|
|
|
|
|
|
|
для: cheops
(13.12.2006 в 13:37)
| | Да, получилось, извените
возникла другая проблема
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=28577&page=1
там последний код
решил разделить скрипт на части
приверка+ первый запрос к БД / запрос с лимитом + вывод
и переменная , получившаяся после порверки выглядит так T like '123' and U like 'qwe'
при передаче её другому скрипту её значение "обрезается" первым символом ' тоесть "T like "
можно конечно до последнего скрипта передавать 8 переменных, но зачем??
подскажите, как это исправить | |
|
|
|
|
|
|
|
для: Michail1982
(14.12.2006 в 18:40)
| | значения полей атрибутов тегов следует htmlspecialchar'ить и брать в кавычки. | |
|
|
|