[英]PHP script error Notice: Undefined variable
我正在編寫用於高級搜索的PHP腳本,但是發生了錯誤。 請幫忙
碼:
$key = $_GET['key'];
$auth = $_GET['auth'];
$lang = $_GET['lang'];
$pub = $_GET['pub'];
if(isset($key) OR isset($auth) OR isset($lang) OR isset($pub))
{
if ($key != NULL){$keyword = "AND (native_name LIKE '%".$key."%' OR unique_name LIKE '%".$key."%')";}
if ($auth != 0) {$auther = "AND auth_id=".$auth."";}
if ($lang != 0) {$language = "AND lang_id=".$lang."";}
if ($pub != 0) {$publisher = "AND pub_id=".$pub."";}
$search_query = "SELECT native_name from books WHERE status=1 ".$keyword." ".$auther." ".$language." ".$publisher."";
print $search_query;
}
錯誤:
注意:第90行的FILE_PATH中的undefined variable:關鍵字
注意:未定義的變量:第90行的FILE_PATH中的auther
注意:未定義的變量:第90行的FILE_PATH中的語言
注意:未定義的變量:第90行的FILE_PATH中的發布者
如果通過if語句創建變量,則可能不會創建這些變量。
您的情況有兩個不同的選擇。
1,使用三元語法
$keyword = $key != NULL ? "AND (native_name LIKE '%".$key."%' OR unique_name LIKE '%".$key."%')" : "";
$author = $auth !=0 ? "AND auth_id=".$auth : "";
$language = $lang !=0 ? "AND lang_id=".$lang : "";
$publisher = $pub !=0 ? "AND pub_id=".$pub : "";
2,預定義變量
$keyword = "";
$author = "";
$language = "";
$publisher = "";
if ($key != NULL){$keyword = "AND (native_name LIKE '%".$key."%' OR unique_name LIKE '%".$key."%')";}
if ($auth != 0) {$auther = "AND auth_id=".$auth."";}
if ($lang != 0) {$language = "AND lang_id=".$lang."";}
if ($pub != 0) {$publisher = "AND pub_id=".$pub."";}
$ keyword / $ auther / etc ..僅在_POST中設置了相應的值時才被分配。 如果未傳遞任何數據,則$ key / $ auth / etc ...將為空字符串或為null,等於0 / null。 嘗試:
if ($key != null) {
$keyword = ...;
} else {
$keyword = some default value;
}
其他的也一樣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.