Php MySQL查询更新取决于$\u POST值

Php MySQL查询更新取决于$\u POST值,php,mysqli,Php,Mysqli,根据用户$\u POST值,我很难想出更新查询的好方法。基本上我有用户管理搜索按钮,在那里网站管理员可以搜索他的网站用户。在我的例子中: <div id="website_user_management_search_left"> <div id="website_user_management_search_left_leftside"> <p>Name:</p> <p>Surname:</p> &

根据用户$\u POST值,我很难想出更新查询的好方法。基本上我有用户管理搜索按钮,在那里网站管理员可以搜索他的网站用户。在我的例子中:

<div id="website_user_management_search_left">
<div id="website_user_management_search_left_leftside">
    <p>Name:</p>
    <p>Surname:</p>
    <p>Telephone:</p>
    <p>Group:</p>
    <p>Discount group:</p>
</div>
<div id="website_user_management_search_left_rightside">
    <input type="text" name="#" value="#" id="userSearch_name">
    <input type="text" name="#" value="#" id="userSearch_surname">
    <input type="text" name="#" value="#">
    <input type="text" name="#" value="#">
    <input type="text" name="#" value="#">
    <input type="submit" id="button_adminUserSearch" value="Search">
</div>
例如-如果用户指定$\u POST[“name”]值,则查询如下所示:

mysqli_query($dbconnect,"SELECT * FROM accounts");
mysqli_query($dbconnect,"SELECT * FROM accounts WHERE name='".$_POST["name"]."'");
问题是-我如何有效地处理这种查询?检查哪些值是“isSet”,然后生成大量的查询用例,这将是愚蠢的。
我希望你能理解我的问题并帮我解决,因为这有点难以解释。

也许你正在寻找类似的东西:

if(empty($_POST['name'])) {
    $name = null;
} else $name = $_POST['name'];
那么在你的陈述中,你的情况是:

WHERE (name=:name OR :name is null)

如果name为set,它将搜索此名称,否则返回true,查询将不受影响

您可以这样做:

mysqli_query($dbconnect,"SELECT * FROM accounts WHERE name LIKE'%".$_POST["name"]."%'");
但有两个小问题: 您没有使用mysqli_escape_string()对用户输入数据进行转义,并且: 你不应该那样做。如果设置了
name
POST data,则更好的方法是仅添加where子句:

$where = '';
if ($_POST['name']) {
  $where = ' WHERE name = '".$name."'"';
}
mysqli_query($dbconnect,"SELECT * FROM accounts" . $where);

是的,我对javascript总体来说是新手,所以我真的不知道该怎么称呼它。我不知道是否允许在这里发布外部链接,但这是答案:。谢谢,但这不是我要找的。这是PDO语法,这就是为什么你能告诉我mysqli的样子吗?还有,如果我有多个$u POST变量,我该如何处理呢?我想你只需改变:name by$name,并使用连接。对于更多变量,只需添加
和(column=:var或:var为null)
,就可以添加任意多的变量