|
|
|
|
|
для: ARIRAN
(07.08.2006 в 13:39)
| | все... я короче уже вообще ничего не понимаю :(
это форма:
<form name='realtyform' action='realty.php' method=get>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="50%">
<select size=9 name=direction[] multiple>
<option value=Север>Север</option>
<option value=Северо-Восток>Северо-Восток</option>
<option value=Восток>Восток</option>";
<option value=Юго-Восток>Юго-Восток</option>
<option value=Юг>Юг</option>
<option value=Юго-Запад>Юго-Запад</option>
<option value=Запад>Запад</option>
<option value=Северо-Запад>Северо-Запад</option>
<option value=Центр>Центр</option>
</select>
</td>
<td width="50%">
<select name=dogovor>
<option value="аренда" checked>Аренда</option>
<option value="продажа">Продажа</option>
</select> <br>
Площадь: от <input type=text name=minsquare value=""> до <input type=text name="maxsquare"><br>
Цена: от <input type=text name="minprice" value=""> до <input type=text name="maxprice">
</td>
</tr>
<tr>
<td width="100%" colspan="2"><INPUT TYPE=Submit VALUE=Искать style=font-size: 8pt> <input type=reset value=Сброс style=font-size: 8pt></td>
</tr>
</table>
|
это обработка:
$direction_values=$HTTP_GET_VARS['direction'];
$dogovor_values=$HTTP_GET_VARS['dogovor'];
$minsquare_values=$HTTP_GET_VARS['minsquare'];
$maxsquare_values=$HTTP_GET_VARS['maxsquare'];
$minprice_values=$HTTP_GET_VARS['minprice'];
$maxprice_values=$HTTP_GET_VARS['maxprice'];
for ($i = 0; $i <= 9; $i++) {
print "$direction_values[$i] ";
};
if ($minsquare_values=="") {$square_query="WHERE field7 >= '0'";}
else {
$square_query="WHERE field7 >= '$minsquare_values'";
}
print "$square_query";
print "$dogovor_values $minsquare_values $maxsquare_values $minprice_values $maxprice_values";
print "<table width='100%' border=1><tr><td>Лот</td><td>Направление</td><td>Договор</td><td>Мин./Макс. цена</td><td>Мин./Макс. площадь</td></tr>";
$result = mysql_query("SELECT * FROM realty $square_query") or die ("не сработало" .mysql_error());
|
в итоге: если не заполнять никакие поля в форме а играть только с полем minsquare то в запрос идет WHERE field7 >= '0' и выводит всю таблицу базы целиком независимо от того заполнено поле в форме или нет.
если заполнить и другие поля в форме то тогда в запрос идет WHERE field7 >= 'значение введенное в форму' но выводит опять таки всю базу целиком не руководствуясь заданным условием.
то, что я чет не так делаю - это ясно :) но вот хотелось бы узнать в чем именно трабл... хеелп! | |
|
|
|
|
|
|
|
для: ARIRAN
(03.08.2006 в 13:43)
| | вернемся к нашим баранам © то есть ко мне :)
$minsquare_values=$HTTP_GET_VARS['minsquare'];
if ($minsquare_values=="") {$square_query="WHERE field7 >= '0'";}
else {
$square_query="WHERE field7 >= '$minsquare_values'";
}
print "$square_query"; // это для проверки чего поступает на выход
$result = mysql_query("SELECT * FROM realty $square_query") or die ("не сработало" .mysql_error());
|
при запуске скрипт выдает
WHERE field7 >= '0' и выводит всю таблицу базы целиком. причем независимо от того заполнено поле minsquare в форме или нет. что я не так делаю? | |
|
|
|
|
|
|
|
для: RV
(03.08.2006 в 15:50)
| | ага понял теперь. странно что блин в пособиях для нубов об этом как-то умалчивается... | |
|
|
|
|
|
|
|
для: ARIRAN
(03.08.2006 в 15:29)
| | $a = 5
это всегда было и есть и от условий не зависет, потому как знак = это присвоение переменной значения.
а для сравнения надо == или === | |
|
|
|
|
|
|
|
для: ARIRAN
(03.08.2006 в 13:43)
| |
<?php
$a=6;
$b=10;
if ($a=5) {$e=50;
}
else {$e=100;
}
$c=$e+$b;
print "$c";
?>
|
народ я чегото не понял. вот пробую такой код он в итоге выдает 60 а не 110 как по идее должен бы... | |
|
|
|
|
|
|
|
для: cheops
(03.08.2006 в 13:56)
| | при выполнении он просто печатает SELECT * FROM animals WHERE AND () | |
|
|
|
|
|
|
|
для: ARIRAN
(03.08.2006 в 13:43)
| | Выведите ваш запрос
<?php
echo "SELECT * FROM animals WHERE $age_query AND ($animal_query) ";
?>
|
Как он выглядит? | |
|
|
|
|
|
|
|
<select name="AGE">
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
</select></td>
<td>
<select name="ANIMAL[]" multiple class="multiple" size="4">
<option value="cat">Кошка</option>
<option value="dog">Собака</option>
<option value="fish">Рыбка</option>
</select>
|
$age_values=$HTTP_GET_VARS['AGE'];
$animal_values=$HTTP_GET_VARS['ANIMAL'];
if ($age_values=" ") {$age_query=" ";}
else {
$age_query="tage='$age_values'";
}
print "переменная эйдж_куери равна: $age_query";
$animal_query="tanimal='$animal_values[0]' OR tanimal='$animal_values[1]' OR tanimal='$animal_values[2]'";
$result = mysql_query("SELECT * FROM animals WHERE $age_query AND ($animal_query) ") or die ("доллар резулт чивота нивыходит!" .mysql_error());
|
в результате он мне пишет:
переменная эйдж_куери равна: tage="доллар резулт чивота нивыходит!You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the
right syntax to use near '\='' AND (tanimal='cat' OR tanimal='' OR tanimal='')' at line 1
|
в чем проблема? объясню планируемый смысл своих действий. по запросу из формы я предполагаю сделать блоки в запросе. то есть если поле AGE не заполнено то оно типа игнорируется при запросе но чего-то в эксперименте идет не так. хелп :) | |
|
|
|
|