我要创建基于用户的输入接收的值动态查询时显示任何结果,该变量的值是通过GET 张贴当我现在运行这个运行此查询
$qry = "SELECT* FROM LAPTOP WHERE 1=1";
$resul = mysqli_query($qry);
retrieve($resul);
该表的所有内容都显示没有任何错误,(检索此功能显示基于查询的所有结果),但是当我尝试修改它这个样子,我得到了一个空白页面
$qry = "SELECT * FROM LAPTOP WHERE 1=1";
if(!empty($company))
{
$qry .= " AND company='$company'" ;
}
if(!empty($cpu))
{
$qry.= " AND cpu='$cpu' " ;
}
if(!empty($lifestyle))
{
$qry.= " AND lifestyle='$lifestyle' " ;
}
if(!empty($display))
{
$qry.= " AND display='$display'" ;
}
if(!empty($ram))
{
$qry.= " AND ram='$ram' " ;
}
if(!empty($HDD))
{
$qry.= " AND HDD='$HDD' " ;
}
echo $qry;
$result= mysqli_query($qry) || die(mysqli_error()) ;
retrieve($result) ;
$p = basename($_SERVER['REQUEST_URI']) ;
的结果echo $qry;
正如预期的那样, t显示此
SELECT * FROM LAPTOP WHERE 1=1 AND company='Asus' AND cpu='intel i3'
有没有办法解决这个问题?我尝试使用WHERE 1 = 1子句的原因是,当所有变量都等于NULL时,查询将返回表中的所有行。
所以你有'SELECT *'或'SELECT *'...并且,你的查询似乎因为某种原因失败。所以不正确的table_name,column_name ...或输入“打破”你的SQL。 – djot
@djot我试着SELECT *和SELECT *只是因为我不确定语法,我也尝试过把它分成几部分,它好像工作正常,我认为第一个WHERE clauase存在一些问题,但是我不能图其他选择。 – CAO
不,'WHERE 1 = 1 AND ...'很好......超级聪明......我在我的项目中使用了数千次。 – djot