0

10 列を超えるテーブルがあります。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 つのフィルター条件のみでフィルター処理し、残りのフィルターを空白のままにして、対応するすべてのデータを表示する方法はありますか?

4

1 に答える 1

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 = "%";
    }

基本的に行っていることは、オプションが選択されていない場合、すべての基準にワイルドカード記号を与えることです。

于 2013-01-20T19:11:26.780 に答える