我要創建基於用戶的輸入接收的值動態查詢時顯示任何結果,該變量的值是通過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