简体   繁体   English

具有多个选择字段的搜索表单

[英]search form with multiple select fields

I have made search form, where are list menus. 我已经做了搜索表格,列表菜单在哪里。 it works very well if I fill every field of the form but, I want that all the fields work independently, like if you fill only one field it must show the result which is about this field only, and if you choos another field it must give seemlier result. 如果我填写表单的每个字段,它会很好地工作,但是,我希望所有字段都可以独立工作,例如,如果仅填写一个字段,则它必须显示仅与该字段有关的结果,如果您选择另一个字段,则必须给出看似结果。 my code looks like this. 我的代码看起来像这样。 thank you beforehand. 预先谢谢你。

 <?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);

based on your data, you can try like following 根据您的数据,您可以尝试执行以下操作

$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);

You can try this; 您可以尝试一下;

$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");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM