1

リストメニューがある検索フォームを作成しました。フォームのすべてのフィールドに入力すると非常にうまく機能しますが、すべてのフィールドが独立して機能するようにします。たとえば、1つのフィールドのみに入力する場合は、このフィールドのみに関する結果を表示する必要があり、別のフィールドを選択する場合は、見た目の結果を出します。私のコードは次のようになります。よろしくお願いします。

 <?php 
 mysql_query("SET NAMES UTF8");
 $mxare = mysql_real_escape_string($_POST['mxare']);
 $raioni = mysql_real_escape_string($_POST['raioni']);
 $type = mysql_real_escape_string($_POST['type']);
 $result = mysql_query("SELECT * FROM dzeglebi WHERE mxare = '$mxare' AND   
 raioni ='$raioni' AND  type = '$type' ORDER BY title ASC", $db); 
 $myrow = mysql_fetch_array($result);
4

2 に答える 2

0

あなたのデータに基づいて、あなたは次のように試すことができます

$mxare = mysql_real_escape_string($_POST['mxare']);
$raioni = mysql_real_escape_string($_POST['raioni']);
$type = mysql_real_escape_string($_POST['type']);

// here 
$sql = "SELECT * FROM dzeglebi WHERE 1==1 " ;
if ( isset($mxare)) $sql = $sql . " AND " . " mxare = '$mxare'";
if ( isset($raioni)) $sql = $sql . " AND " . " raioni= '$raioni'";
.....
.....

$result = mysql_query($sql)
$myrow = mysql_fetch_array($result);
于 2013-01-24T18:03:56.707 に答える
0

これを試すことができます。

$where = array("1=1");
if (!empty($_POST["field_1"])) {
    $where[] = sprintf("field_1='%s'", mysql_real_escape_string($_POST["field_1"]));
}
// if (!empty($_POST["field_2"])) {
// and so on...

// convert where to string with AND or OR
$where = join(" AND ", $where);
mysql_query("SELECT * FROM dzeglebi WHERE $where");
于 2013-01-24T20:53:41.153 に答える