在PHP中创建多个条件

时间:2014-07-23 18:42:15

标签: php sql checkbox conditional-statements

我的申请使用通知。您有3个复选框来确定您想要的通知类型(“关注者”,“订阅者”,“捐赠者”)。你可以检查所有这些或只有一两个......

复选框状态在发布数据中带有ajax函数的php文件上发送。 (如果选中复选框,则返回1,否则返回0)。

在我的php文件中,我需要检查我的数据库,但在检查之前,我需要知道我是否只需要检查粉丝,订阅者,捐赠者,或全部,或者其中两个等等...

我没有创建一个巨大的条件列表,而是在寻找一个更简单的解决方案来知道在dbb中绝对检查什么......

$currentuser=json_decode(stripcslashes($_POST['currentuser'])); //return the name of the user
$follow_mode = json_decode(stripcslashes($_POST['follow'])); //return 1 or 0
$subscribe_mode = json_decode(stripcslashes($_POST['subscribe'])); //return 1 or 0
$donation_mode = json_decode(stripcslashes($_POST['donation'])); //return 1 or 0

$req = $bdd->prepare('SELECT * FROM users WHERE seen=:seen AND target=:tgt ORDER BY id DESC');
$req->execute(array(':seen'=>false,':tgt'=>$currentuser));

在我的dbb表中,我有“is_follower”,“is_sub”,“is_donator”,里面有“1”或“0”值。在SQL请求中使用“AND”是不可能的,因为如果例如检查了所有复选框,则通知必须同时是跟随者和子和捐赠者。

创造良好条件的简单方法是什么?

1 个答案:

答案 0 :(得分:0)

如果不完全理解为什么不能在SQL查询中使用AND语句,我已经能够将其限制为7种情况。

if($follow_mode == 1 && $subscribe_mode == 1 && $donation_mode == 1) {
 $sqlquery = 1;
}
if($follow_mode == 1 && $subscribe_mode == 1 && $donation_mode == 0) {
 $sqlquery = 2;
}

if($follow_mode == 1 && $subscribe_mode == 0 && $donation_mode == 1) {
 $sqlquery = 3;
}

if($follow_mode == 0 && $subscribe_mode == 1 && $donation_mode == 1) {
 $sqlquery = 4;
}


if($follow_mode == 0 && $subscribe_mode == 0 && $donation_mode == 1) {
 $sqlquery = 5;
}


if($follow_mode == 0 && $subscribe_mode == 1 && $donation_mode == 0) {
 $sqlquery = 6;
}


if($follow_mode == 1 && $subscribe_mode == 0 && $donation_mode == 0) {
 $sqlquery = 7;
}

if($sqlquery == 1) {
 //run query where follow_mode == 1, subscribe_mode == 1, donation_mode == 1
}

//continue until $sqlquery 7