複数検索時の条件分岐について
環境:php5、mysql5
条件検索はできるのですが検索状況の違いによる条件分岐について
どなたがアドバイスをお願いします。
$sql内でWHERE以降を「 if ~ else ~ 」などを使って変更するか
WHILE以降を変更する気がするのですがやり方がよくわかりません。
よろしくお願いします。
以下設定
テーブル :tbl_item [int]
フィールド1:item_id [int]
フィールド2:cate_id [int] ←他テーブル(名前に変換)
フィールド3:item_name [varchar]
フィールド4:price [decimal]
フィールド5:stock_id [int] ←他テーブル
条件1:cate_id(プルダウン)を検索条件に加えている時
$sql = "SELECT tbl_item.*, tbl_stock.item_stock FROM tbl_item
LEFT JOIN tbl_stock ON tbl_item.item_id = tbl_stock.item_id
WHERE
tbl_item.cate_id = '" . mysql_real_escape_string( $_GET['cate_id'] ) . "' AND
tbl_item.item_name LIKE '%" . mysql_real_escape_string( $_GET['item_name'] ) . "%' AND
price BETWEEN '" . mysql_real_escape_string( $_GET['price_s'] ) . "' AND '" . mysql_real_escape_string( $_GET['price_e'] ) . "'
ORDER BY tbl_item.item_id desk LIMIT ${_GET['page']}, ${_GET['rows']} ";
$result = mysql_query( $sql ) ;
$num_rows = mysql_num_rows( $result );
条件2:cate_id(プルダウン)を検索条件に加えていない時
$sql = "SELECT tbl_item.*, tbl_stock.item_stock FROM tbl_item
LEFT JOIN tbl_stock ON tbl_item.item_id = tbl_stock.item_id
WHERE
tbl_item.item_name LIKE '%" . mysql_real_escape_string( $_GET['item_name'] ) . "%' AND
price BETWEEN '" . mysql_real_escape_string( $_GET['price_s'] ) . "' AND '" . mysql_real_escape_string( $_GET['price_e'] ) . "'
ORDER BY tbl_item.item_id desk LIMIT ${_GET['page']}, ${_GET['rows']} ";
$result = mysql_query( $sql ) ;
$num_rows = mysql_num_rows( $result );
・
・
アイテム数 <?= $num_rows ?> 種類
・
・
<? WHILE ( $item = mysql_fetch_array( $result ) ) { ?>
・
・
・
<? $n ++; } ?>