Данные MySQL показывают по php. Если выбрать, показать выбранные данные, если нет выбора; показать все данные Как я могу это сделать?

Это веб-сайт донорства крови. Если кто-то хочет видеть своего донора области; он выбирает группу крови, район и область. Но если он не выберет область поля, он ничего не увидит. Но я хочу, чтобы он увидел целые районы донора. Как я могу это сделать? Вот мой код

$blood-grp=$_POST['blood-grp'];
$district=$_POST['district'];
$area=$_POST['area'];$sql="SELECT * FROM $tbl_name WHERE blood-grp='$blood-grp' && district='$district' && area='$area'";

0

Решение

попробуйте с этим вы убедитесь

если он не выбирает свою область, то, если у пользователя есть регистрация, тогда пользователь еще идет с широтой и долготой

 if($_POST['area']=="")
{
$sql="SELECT * FROM $tbl_name WHERE blood-grp='$blood-grp' AND  area='$userarea'";
} else {
$sql="SELECT * FROM $tbl_name WHERE blood-grp='$blood-grp' AND district='$district' AND area='$area'";

}
0

Другие решения

использование if чтобы проверить, был ли он установлен. И примечание стороны: дефис (- ) не допускается в именах переменных

$blood_grp=$_POST['blood-grp'];
$area=$_POST['area'];

if (isset($_POST['district'])) {
$district=$_POST['district'];
$sql = "SELECT * FROM $tbl_name WHERE `blood-grp`='$blood_grp' AND district='$district' AND area='$area'";
} else {
$sql = "SELECT * FROM $tbl_name WHERE `blood-grp`='$blood_grp' AND area='$area'";
}
1

Вы должны записать свой запрос более структурированным, используя конкатенацию и если.
Таким образом, только параметры, которые были выбраны пользователем, фактически задействованы в вашем запросе.

И символ «-» не допускается в именах переменных, поэтому я исправил это до «_».

$blood_grp=$_POST['blood_grp'];
$district=$_POST['district'];
$area=$_POST['area'];$sql="SELECT *
FROM $tbl_name
WHERE ";

if(strlen($blood-grp) > 0) {
$query .= "blood_grp = '$blood_grp' AND ";
}
if(strlen($district) > 0) {
$query .= "district = '$district' AND ";
}

if(strlen($area) > 0) {
$query .= "area = '$area' AND ";
}

//Remove final " AND " by cutting off last 5 characters to make the query valid:
$query = substr($query, 0, strlen($query) - 5);

echo $query;
0
По вопросам рекламы [email protected]