【问题标题】:MySQL query updating depending on $_POST valuesMySQL 查询更新取决于 $_POST 值
【发布时间】:2015-04-29 17:19:10
【问题描述】:

我无法根据用户 $_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>

然后按“搜索”按钮 AJAX 发送请求以检索结果,但我该如何处理这个动态查询? 例如 - 如果用户只是按“搜索”查询将如下所示:

mysqli_query($dbconnect,"SELECT * FROM accounts");

例如 - 如果用户指定 $_POST["name"] 值,查询将如下所示:

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

问题是 - 我怎样才能有效地处理这种查询?检查哪些值是“isSet”然后进行大量查询案例将是愚蠢的。 我希望你能理解我的问题并能帮助解决它,因为这有点难以解释。

【问题讨论】:

  • 是的,我是 javascript 的新手,所以我真的不知道在那里称呼东西的正确名称。
  • 我不知道是否允许在此处发布外部链接,但这是答案:formget.com/submit-form-using-ajax-php-and-jquery
  • 谢谢,但这不是我想要的

标签: php mysqli


【解决方案1】:

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

if(empty($_POST['name'])) {
    $name = null;
} else $name = $_POST['name'];

那么在你的陈述中,你的条件是:

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

如果设置了name,则搜索该名称,否则返回true,不影响查询

【讨论】:

  • 这是 PDO 语法,这就是原因
  • 你能告诉我mysqli是什么样子吗?另外,如果我有多个 $_POST 变量,我该如何处理?
  • 我猜你只是将 :name 更改为 $name 并连接。更多变量,你只需添加AND (column = :var OR :var is null),你可以添加尽可能多的var
【解决方案2】:

你可以这样做:

mysqli_query($dbconnect,"SELECT * FROM accounts WHERE name LIKE'%".$_POST["name"]."%'");

但是有两个小问题: 您没有使用 mysqli_escape_string() 转义用户输入数据,并且: 你不应该那样做。如果设置了 name POST 数据,更好的方法是仅添加 where 子句:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 2015-01-25
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    相关资源
    最近更新 更多