Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: You have an error in your SQL syntax.

Сообщения:  [1-8] 

 
 автор: ARIRAN   (07.08.2006 в 14:53)   письмо автору
 
   для: 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>&nbsp;<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]&nbsp;";
};

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   (07.08.2006 в 13:39)   письмо автору
 
   для: 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 в форме или нет. что я не так делаю?

   
 
 автор: ARIRAN   (03.08.2006 в 16:01)   письмо автору
 
   для: RV   (03.08.2006 в 15:50)
 

ага понял теперь. странно что блин в пособиях для нубов об этом как-то умалчивается...

   
 
 автор: RV   (03.08.2006 в 15:50)   письмо автору
 
   для: ARIRAN   (03.08.2006 в 15:29)
 

$a = 5
это всегда было и есть и от условий не зависет, потому как знак = это присвоение переменной значения.
а для сравнения надо == или ===

   
 
 автор: ARIRAN   (03.08.2006 в 15:29)   письмо автору
 
   для: 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 как по идее должен бы...

   
 
 автор: ARIRAN   (03.08.2006 в 14:19)   письмо автору
 
   для: cheops   (03.08.2006 в 13:56)
 

при выполнении он просто печатает SELECT * FROM animals WHERE AND ()

   
 
 автор: cheops   (03.08.2006 в 13:56)   письмо автору
 
   для: ARIRAN   (03.08.2006 в 13:43)
 

Выведите ваш запрос
<?php
  
echo "SELECT * FROM animals WHERE $age_query AND ($animal_query) ";
?>

Как он выглядит?

   
 
 автор: ARIRAN   (03.08.2006 в 13:43)   письмо автору
 
 


<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 не заполнено то оно типа игнорируется при запросе но чего-то в эксперименте идет не так. хелп :)

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования