将isset()与mysql查询组合以创建动态查询

时间:2012-06-13 17:17:06

标签: php

我做了一些寻找,但说实话,我只是不知道究竟要搜索什么。我想要做的是创建一个动态查询,如tittle所说。也就是说,我只查询发送到php文件的变量。例如,如果我想查找用户,但我只知道他们的姓氏和用户名,但对于其他用户,我知道他的名字和电子邮件。我想给搜索表单提供许多字段,并根据输入的字段创建查询。

1 个答案:

答案 0 :(得分:2)

首先构建WHERE子句列表,然后将这些子句添加到查询中。例如:

$where = "";

if (isset($firstname) {
    $firstname = mysql_real_escape_string($firstname);
    $where .= "AND firstname='$firstname'";
}

if (isset($lastname) {
    $firstname = mysql_real_escape_string($lastname);
    $where .= "AND lastname='$lastname'";
}

mysql_query("SELECT * FROM users WHERE 1 ".$whereClause);

当然,您需要更改表/行/ etc名称,并为每个属性添加额外的if (isset部分。