Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не могу вставить переменную в запрос.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
jeck111
Отправлено: 16 Июня, 2011 - 15:53:57
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2009  
Откуда: Украина, Кременчуг


Помог: 0 раз(а)




Здравствуйте уважаемые.
Пытаюсь реализовать автодополнение.
Использую MySQL. Есть вот такой запрос
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT `fio` FROM `staff` WHERE `fio` LIKE '".$inputString."%'"

Который ничего не выдает.
Но зато вот такой запрос возвращает то что мне нужно (список имен начинающихся на "Ко")
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT `fio` FROM `staff` WHERE `fio` LIKE 'Ко%'"

И точно знаю что в $inputstring Ко, а все равно ничего не возвращает. Вроде все просто, но все же не могу понять. Подскажите пожалуйста где может быть собака зарыта?
 
 Top
morosit
Отправлено: 16 Июня, 2011 - 16:01:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




подозреваю что собака порылась в кавычках
 
 Top
IllusionMH
Отправлено: 16 Июня, 2011 - 16:08:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




jeck111, возможнно простой
PHP:
скопировать код в буфер обмена
  1. echo "SELECT 'fio' FROM 'staff' WHERE 'fio' LIKE '".$inputString."%'";

прольет свет на вашу проблему.

(Отредактировано автором: 16 Июня, 2011 - 16:08:39)

 
 Top
Мелкий Супермодератор
Отправлено: 16 Июня, 2011 - 16:08:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Основы дебага, сделайте:
PHP:
скопировать код в буфер обмена
  1. echo "SELECT `fio` FROM `staff` WHERE `fio` LIKE '".$inputString."%'";


Наиболее вероятная причина - несоответствие кодировки mysql и того, что вы отправляете.


-----
PostgreSQL DBA
 
 Top
jeck111
Отправлено: 16 Июня, 2011 - 16:09:17
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2009  
Откуда: Украина, Кременчуг


Помог: 0 раз(а)




morosit пишет:
подозреваю что собака порылась в кавычках

в каких? пробовал наверное уже в разных вариантах с этими кавычками.
Предоставь свой вариант правильного расположения кавычек пожалуйста.
 
 Top
IllusionMH
Отправлено: 16 Июня, 2011 - 16:16:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




jeck111, попробуй вариант кода, который я выложил выше. Там кавычки одинаковые.
В твоем примере есть разница(по крайней мере визуальная) между одинарными кавычками в запросе (fio, staff) и теми, которые обрамляют переменную.
 
 Top
jeck111
Отправлено: 16 Июня, 2011 - 16:22:56
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Янв. 2009  
Откуда: Украина, Кременчуг


Помог: 0 раз(а)




Блин реально помог эти простые основы дебага.
Оказалось что LIKE приводит все буквы к нижнему регистру, а фамилии то с больших начинаются.
А самое главное что я ж всегда видел что буквы то в переменной строчные, просто не придавал этому значения. А когда весь запрос целиком увидел, то бросилось в глаза.
Всем спасибо проблема решена.
(Добавление)
IllusionMH пишет:
jeck111, попробуй вариант кода, который я выложил выше. Там кавычки одинаковые.
В твоем примере есть разница(по крайней мере визуальная) между одинарными кавычками в запросе (fio, staff) и теми, которые обрамляют переменную.


Разница действительно есть, где-то читал что это хороший тон в запросах имена таблиц и столбцов обрамлять обратными кавычками (те что на Ё Улыбка).
 
 Top
yaroslav1189
Отправлено: 18 Сентября, 2012 - 10:55:22
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Доброго времени суток. У меня такой вопрос. В цикле генерится запрос к БД.
PHP:
скопировать код в буфер обмена
  1.  
  2. $tab_name='rion_'.$r1;
  3. $qwery = "SELECT * FROM ".$tab_name." WHERE ned_id=".$period." ORDER BY id";
  4. $r_ri=mysql_query($qwery,$db);                
  5. $m_ri=mysql_fetch_array($r_ri);
  6.  

$r1, $period - число типа интежер
На локальной машине все работает, а при заливке скрипта на сервер выдается ошибка, что мол запрос не может быть выполнен. Причем, если ввести в майадмине на сервере запрос, который сгенерировал скрипт, то он выполняется. В чем может быть дело?...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB