Это веб-сайт донорства крови. Если кто-то хочет видеть своего донора области; он выбирает группу крови, район и область. Но если он не выберет область поля, он ничего не увидит. Но я хочу, чтобы он увидел целые районы донора. Как я могу это сделать? Вот мой код
$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'";
попробуйте с этим вы убедитесь
если он не выбирает свою область, то, если у пользователя есть регистрация, тогда пользователь еще идет с широтой и долготой
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'";
}
использование 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'";
}
Вы должны записать свой запрос более структурированным, используя конкатенацию и если.
Таким образом, только параметры, которые были выбраны пользователем, фактически задействованы в вашем запросе.
И символ «-» не допускается в именах переменных, поэтому я исправил это до «_».
$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;