Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » запрос в MySQL из PHP с условием. что-то не так делаю

Ответить
Настройки темы
запрос в MySQL из PHP с условием. что-то не так делаю

Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


PHP код: Выделить весь код

$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' (это результат строки print "$square_query"; // это для проверки чего поступает на выход )

и выводит всю таблицу базы целиком. причем независимо от того заполнено поле minsquare в форме или нет. что я не так делаю?

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 13:48, 07-08-2006

 

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


koresaram
1. тема создана не в том разделе форума.(см. раздел "Вебмастеру")
2.
Цитата:
$square_query="WHERE field7 >= '0'";
зачем ноль заключен в кавычки?... у field7 тип не числовой?
3. приведите код формы, которая обрабатывается этим скриптом. возможно причина в ней.
каким методом отправляются данные. Вы точно уверены, что GET?

Отправлено: 14:33, 07-08-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


числовой вроде. там только цифры вбиты. целиком это выглядит так:

PHP код: Выделить весь код

сама форма:

<
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]&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 >= 'значение введенное в форму' но выводит опять таки всю базу целиком не руководствуясь заданным условием.

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 14:52, 07-08-2006 | #3


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


1. если формат поля field7 числовой, то кавычки не нужны.
уберите их и ограничение должно заработать
2. я сейчас больше ошибок не вижу, может быть кто-то(кхм-кхм, Влад...)) увидит, почему если заполнить только одно поле minsquare, а остальные не трогать, то заполненное значение не передается в переменную $HTTP_GET_VARS['minsquare'];
(я правельно понял проблему?)

Отправлено: 15:12, 07-08-2006 | #4


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


koresaram
Цитата:
koresaram
1. тема создана не в том разделе форума.(см. раздел "Вебмастеру")
koresaram
блин... отличный скрипт для взлома базы данных вашего сервера...
вам обязательно нужно почить статьи о создании защищенных от взлома системм, а то в поле minprice_values можно записать почти любой кусок SQL кода...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 15:24, 07-08-2006 | #5


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
1. если формат поля field7 числовой, то кавычки не нужны.
уберите их и ограничение должно заработать
PHP код: Выделить весь код

if ($minsquare_values=="") {$square_query="WHERE field7 >= 0";}


else {
$square_query="WHERE field7 >= $minsquare_values";


заменил блок условия. не работает. все опять так как описано
да, проблема понята верно - при незаполнении других полей вбитое значение не передается скрипту. дальше я так понимаю будет следующая проблема - не будет срабатывать условие. потому как если все заполнить то в запрос идет нужное, но выбирает всю базу. а в условии фигурирует только поле minsquare и больше ничего...


Цитата:
блин... отличный скрипт для взлома базы данных вашего сервера...
вам обязательно нужно почить статьи о создании защищенных от взлома системм, а то в поле minprice_values можно записать почти любой кусок SQL кода...
там ломать нечего там нету ничего только вот эта пробная база и все я б почитал только боюсь что не пойму нифига - раз и два как бы это все заставить работать а?

Отправлено: 15:42, 07-08-2006 | #6


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


тьфу (много мата) работает тама блин все. это я в другую графу смотрел и подставлял в форму числа которые были заведомо меньше значений в базе (перепутал с ценой там числа на порядок меньше) поэтому он мне и выдавал всю базу что все объекты подходили по условию поехал я дальше условия составлять, а про безопасность мы еще поговорим

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 16:27, 07-08-2006 | #7


Аватара для archy

Ветеран


Сообщения: 659
Благодарности: 3

Профиль | Отправить PM | Цитировать


XCodeR
mysql нормализует параметры в запросе автоматически. Для него нет разницы, в кавычках или без них вы обращаетесь к числовому полю.

Отправлено: 14:49, 09-08-2006 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » запрос в MySQL из PHP с условием. что-то не так делаю

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] MySql, PHP | Что на самом деле хранится в базе? hasherfrog Вебмастеру 2 09-04-2009 15:29
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php v0f41k Вебмастеру 4 11-05-2008 22:08
Как активировать кодек или что я не так делаю? alemart Видео и аудио: обработка и кодирование 2 11-11-2007 11:29
Звонок с модема: что я не так делаю? DTF Программирование и базы данных 5 14-05-2006 20:27
запрос вешающий MySQL Vlad Drakula Вебмастеру 5 26-12-2004 17:30




 
Переход