我已经制作了搜索表单,列表菜单在哪里。如果我填写表单的每个字段,它的效果非常好但是,我希望所有字段都独立工作,就像只填充一个字段一样,它必须显示仅与此字段相关的结果,如果您选择另一个字段,则必须给出更好的结果。我的代码看起来像这样。先谢谢你。
<?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);
答案 0 :(得分: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);
答案 1 :(得分: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");