PHP脚本错误通知:未定义变量
我正在为高级搜索编写一个PHP脚本,但出现了一个错误。请帮忙PHP脚本错误通知:未定义变量,php,Php,我正在为高级搜索编写一个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_
代码:
$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行文件路径中的关键字
注意:未定义变量:第90行文件路径中的auther
注意:未定义变量:第90行文件路径中的语言
注意:未定义变量:第90行文件路径中的publisher$keyword/$auther/等。。仅当设置了_POST中的相应值时,才可以指定。如果未传入任何数据,$key/$auth/etc。。。将为空字符串或null,等于0/null。尝试:
if ($key != null) {
$keyword = ...;
} else {
$keyword = some default value;
}
对于其他变量也是如此。如果您通过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."";}
您的变量只是有时定义的,如果条件是met1st,请检查issets$\u GET varsOr
$keyword=($key)?“…”:”一些默认值'代码>作为速记。