Как сделать проверку на заполнения в mysql?

Не могу продумать логику при выборке(поиске) . Человек вводит параметры, но я хочу чтобы все были необязательными.Я сделал вот так:
$name_user =$_POST['name_user'];
$surname_user =$_POST['surname_user'];
$city_user =$_POST['city_user'];
$resultArray = "SELECT * FROM `user` WHERE `name` ='$name_user' AND`surname`='$surname_user' AND `city` = '$city_user' ";

if ($name_user==""){
$resultArray = str_replace("`name` ='$name_user' AND","",$resultArray);
}
if ($surname_user==""){
$resultArray = str_replace("`surname`='$surname_user' AND","",$resultArray);
}
if ($city_user==""){
$resultArray = str_replace("`city` = '$city_user'","",$resultArray);
}

НО если втречаются варианты когдачеловек например ввел только Имя и тогда уже не выходят данные так как AND не вырезается, как можно более разумнее сделать это , не просматривая каждый частный случай?
  • Вопрос задан
  • 2205 просмотров
Решения вопроса 1
WebSpider
@WebSpider
Как-то так
$where = array();
if ($name_user) {
  $where[] = "`name` = '$name_user'";
}
if ($surnamename_user) {
  $where[] = "`surname` = '$surnamename_user'";
}
$where = $where ? "WHERE ".implode(' AND ', $where) : '';

$resultArray = "SELECT * FROM `user` $where";
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ProgramCodePav
@ProgramCodePav
Front-end developer. Love open source
www.w3schools.com/sql/sql_and_or.asp
попробуйте заменить AND на OR
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы