Пролема с обращением к MySQL

Статус
В этой теме нельзя размещать новые ответы.

merder

Постоялец
Регистрация
26 Янв 2007
Сообщения
87
Реакции
16
На сайте есть поиск по заданным параметрам, но постоянно вылезает вот это. Хотя если не задавать параметры поиска вроде как все работает.

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 'MН_ ML ›ЬП_LI™]][њЩ™\Џ_ЏLL  М ЫЭ[ќћO' at line 1
[SELECT COUNT(*) FROM `hsl_plan` p LEFT JOIN `hsl_host` h ON p.hid=h.hid WHERE p.status=1 AND p.`monthly_price`>=0 AND p.`monthly_price`<5 D p.`webspace`MН_ ML ›ЬП_LI™]][њЩ™\Џ_ЏLL  М ЫЭ[ќћO]

Файл search.php прилагается.
 

Вложения

  • search.rar
    1,9 KB · Просмотры: 7
Очень похоже что кодировки на входе где-то не стыкуются.
 
PHP:
	if (isset($vars['monthly_price'])) {
		array_push($where, str_replace("|", " AND p.`monthly_price`", $vars['monthly_price']));
		unset ($vars['monthly_price']);
	}
	if (isset($vars['webspace'])) {
		array_push($where, str_replace("|", " AND p.`webspace`", $vars['webspace']));
		unset ($vars['webspace']);
	}
	if (isset($vars['datatransfer'])) {
		array_push($where, str_replace("|", " AND p.`datatransfer`", $vars['datatransfer']));
		unset ($vars['datatransfer']);
	}
	if (isset($vars['os'])) {
		array_push($where, str_replace("|", " AND p.`os`", $vars['os']));
		unset ($vars['os']);
	}

Во всей этой части пропущены знаки равно или LIKE, хз что вы там собирались использовать.
Например сейчас
PHP:
array_push($where, str_replace("|", " AND p.`monthly_price`", $vars['monthly_price']));
а должно быть
PHP:
array_push($where, str_replace("|", " AND p.`monthly_price` = ", $vars['monthly_price']));
 
я не силен в php..скажите пожалуйста в каких местах нужно вставить знаки равно и LIKE
 
PHP здесь не при чем.
Я вам дал один пример - делайте остальные по аналогии.
 
PHP здесь не при чем.
Я вам дал один пример - делайте остальные по аналогии.
Пробовал по аналогии, не помогло. Зато нашел статью где написано как это исправить, но только я ничо там не понимаю:) Вот адрес:
_http://phportal.informika.ru/support/open-forum/open/403/

Нужно что-то в скобки поместить ток в своем коде этого не нашел.
 
после добавления = какая ошибка теперь?
помоему еще и кавычек нехватает
PHP:
array_push($where, str_replace("|", " AND p.`monthly_price` = `", $vars['monthly_price'], "`"));
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху