-2

我有 4 个目录过滤器(名称、ID、日期、价格)。这些是来自用户的输入,用于查看数据库中的特定数据。这 4 个过滤器将在 php 上产生 4^2 (16) 个 sql_queries,因为某些过滤器可能为空。有没有更好的方法来减少查询?

例子:

if(isset($_POST['filters']))
{
    $date = $_POST['date'];
    $timi = $_POST['timi'];
    $employee = $_POST['dropdown_users'];
    $proion =$_POST['dropdown_proionta'];
    $query = ("SELECT * FROM id_of_orders WHERE username='$employee' AND price = '$timi' AND time = '$date' AND proion='$proion'");
    $result=mysql_query($query);
    while($row= mysql_fetch_array($result))
    {
        echo $row['id_order'] . " " . $row['time'] . '<br>';
    }
}
4

1 回答 1

2

我想你正在寻找这样的东西:

$query = "SELECT * FROM id_of_orders WHERE 1=1";
if(!empty($employee))
  $query .= " AND username='$employee'";
if(!empty($timi))
  $query .= " AND price='$timi'";
if(!empty($date))
  $query .= " AND time='$date'";
if(!empty($proion))
  $query .= " AND proion='$proion'";

这种方式不会为空过滤器添加查询条件,而输入的过滤器将用作结果的条件。

于 2013-08-18T10:32:45.330 回答