我允许我的用户按 10 个不同的标准进行搜索。我是从 url 中挑选的。但问题是,如果其中一些标准是空的。然后它将在数据库中搜索记录,其中是空记录。
$pretrazi_drzava=quote_smart($_GET["pretrazi_drzava"]);
$pretrazi_broj=quote_smart($_GET["pretrazi_broj"]);
$pretrazi_spol=quote_smart($_GET["pretrazi_spol"]);
$pretrazi_boja=quote_smart($_GET["pretrazi_boja"]);
$pretrazi_rasa=quote_smart($_GET["pretrazi_rasa"]);
$pretrazi_ime=quote_smart($_GET["pretrazi_ime"]);
$pretrazi_godina=quote_smart($_GET["pretrazi_godina"]);
$pretrazi_status=quote_smart($_GET["pretrazi_status"]);
$pretrazi_otac=quote_smart($_GET["pretrazi_otac"]);
$pretrazi_majka=quote_smart($_GET["pretrazi_majka"]);
用 OR 很容易做到
...AND (mg_drzava.drzava='$pretrazi_drzava'
OR mg_golub.brojgoluba='$pretrazi_broj'
OR mg_golub.spol='$pretrazi_spol'
OR mg_golub.boja='$pretrazi_boja'
OR mg_golub.rasa='$pretrazi_rasa'
OR mg_golub.ime='$pretrazi_ime'
OR mg_golub.godina='$pretrazi_godina'
OR mg_status.status='$pretrazi_status'
OR O.brojgoluba='$pretrazi_otac'
OR M.brojgoluba='$pretrazi_majka')...
但是,如果改为 OR 放置 AND 并且例如仅mg_golub.brojgolub=''
是空的,那么它将搜索数据库中brojgolub
为空的每条记录,它什么也找不到,也不会显示任何结果。
如何解决这种情况?