gpt4 book ai didi

php - 基于 if 条件优化 PHP 变量

转载 作者:行者123 更新时间:2023-11-29 21:11:19 24 4
gpt4 key购买 nike

我有一个用户页面,默认显示系统中的所有用户。

我正在尝试应用过滤器,以便用户可以优化对用户的搜索。例如,查看所有男性用户。

默认情况下,要在 users.php 上显示所有用户,我默认运行此查询:

$get_all_users = "SELECT * FROM users";

但是,例如,当用户选择他们想要查看系统上的所有女性用户时,我想运行此查询(示例):

$get_all_users = "SELECT * FROM users WHERE gender = 'female'";

但由于某种原因,默认显示所有用户的查询始终被执行。这是我的方法:

// get gender from radio buttons
$refined_gender = htmlentities (strip_tags(@$_POST['gender']));

$get_all_users = "SELECT * FROM users";

if (isset($_POST['submit'])){
if (isset($_POST['gender'])) {
if ($refined_gender){
$get_all_users = "SELECT * FROM users WHERE gender = '$refined_gender'";
}
}
}

最佳答案

就像我会构建 WHERE 子句(至少是类似的东西)未经测试

$get_all_users = "SELECT * FROM users" . buildWhereClause($_POST);

function buildWhereClause($_POST) {
$where = 'WHERE 1=1';
foreach($_POST as $k => $v) {
//check if $v is valid with a different function
switch($k) {
case 'gender':
$where .= sprintf('AND `gender` = `%s`', $v);
break;
case 'age':
$where .= sprintf('AND `age` = %d', $v);
break;
}
}
return $where;
}

这是一个非常蹩脚的函数,不应该按原样使用。就像它可能导致的一个例子一样。我确信有一些聪明的方法可以做到这一点,并且您并不总是需要 AND

关于php - 基于 if 条件优化 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com