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

你可以试试这个;

$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 回答
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 回答