Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2012, 17:14   #1
kireev
 
Регистрация: 18.01.2010
Сообщений: 7
По умолчанию Запрос на поиск данных

Выдает ошибку: "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 '0' at line 1". Если правильно понимаю, то ошибка в синтаксисе запроса. Помогите исправить
PHP код:
$fio_search = (isset($_POST['fio_search'])) ? mysql_real_escape_string($_POST['fio_search']) : '';
    
$date_search = (isset($_POST['date_search'])) ? mysql_real_escape_string($_POST['date_search']) : '';
    
$pol_search = (isset($_POST['pol'])) ? mysql_real_escape_string($_POST['pol']) : '';

    
$query "SELECT DISTINCT users.id ,fio FROM users WHERE users.id <> '{$_SESSION['user_id']}'";
    
    if (!
$fio_search
    {
$query += " AND fio LIKE '" $fio_search "'";}
    if (!
$date_search)
    {
$query += " AND YEAR(birthday) = '" $date_search "'";}
    if (!
$pol)
    {
$query += " AND pol ='" $pol "'";} 
kireev вне форума Ответить с цитированием
Старый 26.06.2012, 20:13   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kireev Посмотреть сообщение
PHP код:
    if (!$fio_search
    {
$query += " AND fio LIKE '" $fio_search "'";}
    if (!
$date_search)
    {
$query += " AND YEAR(birthday) = '" $date_search "'";}
    if (!
$pol)
    {
$query += " AND pol ='" $pol "'";} 
В РНР это не катит, тут конкатенация строк через точку выполняется ("string_1" . "string_2"), а не через плюс.
Ну и, соответственно, не " += " нужно, а " .= ".
Andkorol вне форума Ответить с цитированием
Старый 26.06.2012, 21:37   #3
kireev
 
Регистрация: 18.01.2010
Сообщений: 7
По умолчанию

да, спасибо.ошибка пропала.но список пользователей не выводится.когда делаю обычный поиск без параметров,то всё работает нормально.в чем может быть проблема?
kireev вне форума Ответить с цитированием
Старый 26.06.2012, 22:20   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Выведи готовый, полностью собранный запрос в браузер - чтоб визуально убедиться, что все значения переменных подставились в запрос верно, и что подставились именно ожидаемые значения (например, дата в нужном формате).
Проверь, что в таблице БД действительно есть записи, полностью подходящие под критерии этого запроса.
Выполни готовый запрос в консоли или PMA - проверь возможные ошибки.
Поиск ошибок
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL-запрос (поиск) Серёга Русич Помощь студентам 10 13.05.2011 15:17
Поиск SQL запрос ANT35 Помощь студентам 1 28.04.2010 00:03
SQL-запрос на поиск LANDER БД в Delphi 13 04.06.2009 07:00
Запрос на поиск Hobbit_88 БД в Delphi 4 24.04.2009 13:50
Поиск через запрос Таня84 БД в Delphi 1 17.02.2007 02:52