[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает поиск
jamals
Не могу понять. Почему не работает поиск.
Кто может помочь настроить?
Все перебробывал
    function ext($text)
{
return mysql_real_escape_string(htmlspecialchars($text));
}
if($_POST['title']!='') $title=ext($_POST['title']); else $title='';
if($_POST['street']!='') $street=ext($_POST['street']); else $street='';
if($_POST['city']!='') $city=ext($_POST['city']); else $city='';
if(isset($_POST['wifi'])) $prefix1='1'; else $prefix1='';
if(isset($_POST['bil'])) $prefix2='1'; else $prefix2='';
if(isset($_POST['sush'])) $prefix3='1'; else $prefix3='';
if(isset($_POST['kal'])) $prefix4='1'; else $prefix4='';
if(isset($_POST['kar'])) $prefix5='1'; else $prefix5='';
if(isset($_POST['nal'])) $prefix6='1'; else $prefix6='';


$db=mysql_query("SELECT *
FROM tb_users
WHERE street_cafe LIKE '
$street' or name_cafe LIKE '$title' or city_cafe LIKE '$city' or prefix1 LIKE '$prefix1'
or prefix2 LIKE '
$prefix2' or prefix3 LIKE '$prefix3' or prefix4 LIKE '$prefix4' or prefix5 LIKE '$prefix5' or prefix6 LIKE '$prefix6'");

P.s не ищет. Выдает все записи



Спустя 11 минут, 53 секунды (10.08.2012 - 17:55) kamanch написал(а):
Я тебе больше скажу.
Он у тебя ищет только в одном случае, если все поля поиска заполнены.
Ты запрос в браузер выведи, сразу увидишь все.
Заодно и логику условий подправишь.

Спустя 1 день, 4 часа, 20 минут, 14 секунд (11.08.2012 - 22:15) jamals написал(а):
А как мне запрос сделать, нормально. Я понимаю. Но я пере пробывал. Не получается нормальный запрос к базе выдать.
Не догоняю, и тут огородами уже хожу 2 день. Я поиск делал токо с одним значением. А тут как я хз

Спустя 27 минут, 37 секунд (11.08.2012 - 22:43) kamanch написал(а):
Вот ты пишешь :
if($_POST['street']!='')  $street=ext($_POST['street']); else $street='';

И далее:
SELECT *
FROM tb_users
WHERE street_cafe LIKE '$street' or name_cafe ...


Т.е. если у тебя $_POST['street'] придет пустым, то запрос будте выглядить так:
SELECT *
FROM tb_users
WHERE street_cafe LIKE or name_cafe.....


Значит, тебе нужно в твоих if ... else собирать условие в переменную, которое ты потом подставишь в запросе в WHERE

Типа:
$where = '';
if($street != '') {
$where = "street_cafe LIKE '" . $street . "'";
}

if($title !='') {
if($where != '') {
$where = $where . " or name_cafe LIKE '" . $title . "'";
} else {
$where = "name_cafe LIKE '" . $title . "'";
}
}


// и т.д.


А перед самим запросом проверяешь появилось ли что в $where
Если нет, значит юзер ничего не ввел, то и запрос в базу отправлять смысла нет.

Спустя 11 часов, 35 минут, 35 секунд (12.08.2012 - 10:18) jamals написал(а):
Все тип топ)) Спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.