2013-01-20 110 views
0

我有一個超過10列的表。我可以sql命令狀過濾數據:SQL篩選表數據

mysql_select_db("mydb", $con); 

$sql="SELECT * FROM files WHERE PUB LIKE '".$PUB."' AND 
ID LIKE '".$ID."' AND PG_NO LIKE '%".$PG_NO."%' AND 
SECTION LIKE '".$SECTION."' AND EDITION LIKE '%".$EDITION."%' AND 
COLOR LIKE '".$COLOR."' AND REVISION LIKE '".$REVISION."'"; 

問題是我必須填寫搜索/過濾器查詢的各個領域。 我想在某些時候使用所有的字段和一些字段。

有沒有什麼辦法可以只用1或2個過濾條件進行過濾,其餘的過濾條件都留空以顯示所有相應的數據?

回答

0

一下添加到你打電話給你的SQL語句之前

if(isset($PUB)){} 
else{ 
    $PUB = "%"; 
    } 
if(isset($ID)){} 
else{ 
    $ID = "%"; 
    } 
if(isset($SECTION)){} 
else{ 
    $SECTION = "%"; 
    } 
if(isset($EDITION)){} 
else{ 
    $EDITION = "%"; 
    } 
if(isset($COLOR)){} 
else{ 
    $COLOR = "%"; 
    } 
if(isset($REVISION)){} 
else{ 
    $REVISION = "%"; 
    } 

我們基本上做的是讓所有標準通配符跡象,如果選擇的選項。

+0

<形式行動= 「x.php」> <輸入名稱= 「PUB」><輸入名稱= 「ID」>〜 <?PHP的 $ PUB = $ _ REQUEST ('set($ ID)){} else {$ PUB =「%」;} if(isset($ ID)){} {'PUB']; $ ID = $ _ REQUEST ['ID'];〜 if else {$ ID =「%」;}〜 mysql_select_db(「mydb」,$ con); $ result = mysql_query($ sql); $ num_rows = mysql_num_rows($)。$ sql =「SELECT * FROM files WHERE PUB LIKE'」。$ PUB。「'AND ID LIKE'」。$ ID。結果); 回波$行[ 'FULL']; 回聲「

〜 」; 而($行= mysql_fetch_array($結果)) {回聲「 」;回聲「​​「$行[ 'PUB'。」「; echo」​​「。$ row ['ID']。」 「」;〜 echo「」;} echo「
PUB ID
」;?> – user1994602

+0

抱歉太空問題讓我用笨拙的方式寫這篇文章,我覺得你們兩個都在做正確的事情,只是我不能把事情做好。這裏是我使用的總代碼,〜表示其餘的部分,請幫助。 – user1994602

+0

是否需要downvote一個非常好的答案? –