【问题标题】:create multiples conditions in PHP在 PHP 中创建多个条件
【发布时间】:2017-08-14 23:35:11
【问题描述】:

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

复选框状态通过 php 文件发送,并在 post 数据中使用 ajax 函数。 (如果选中复选框,则返回 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”是不可能的,因为如果例如所有复选框都被选中,则通知必须同时是关注者和子和捐赠者。

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

【问题讨论】:

  • 这里的问题太宽泛了。尝试将其分解并就您无法解决的问题提出相关问题。

标签: php sql checkbox conditional-statements


【解决方案1】:

在不完全理解为什么不能在 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

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多