gpt4 book ai didi

带有 && 和 || 的 PHP if/elseif 逻辑

转载 作者:可可西里 更新时间:2023-11-01 01:04:35 25 4
gpt4 key购买 nike

我有一些 php 代码,用于根据从某些 HTML 发送的值运行不同的 mySQL 查询。从 HTML 发送的值是我使用的当天:

<?php $day = date("w"); ?>

当我使用时:

<?php echo $day; ?>

它返回 6,这是它应该做的(因为今天是星期六),所以我可以确认我的 HTML/php 正在向我的脚本发送正确的信息。

现在在我的脚本中,我在 if/elseif 语句中有一个包含 && 和 || 的大量 mySQL 查询列表条件。

这是前两个的例子:

if(($noshow == 1) && ($day != 5 || $day != 6 || $day != 0)){
$run = mysql_query("UPDATE employee_data SET points=points+5 WHERE ID=" . $id) or die(mysql_error());
}
elseif(($noshow == 1) && ($day == 5 || $day == 6 || $day == 0)){
$run = mysql_query("UPDATE employee_data SET points=points+7 WHERE ID=" . $id) or die(mysql_error());
}

变量 $noshow 也从我的 html 文件发送,它以复选框的形式出现,值为 1(如果选中)。所以我需要它做的是根据今天是哪一天运行查询。在第一个语句中,如果选中 html 中的框并且不是星期五、星期六或星期日 (5,6,0),我希望它更新点数以等于当前点数加 5。

下一个语句应该与第一个语句做同样的事情,但前提是当天是星期五、星期六或星期日。该脚本继续执行我所做的各种复选框/选项的大约 10 个其他语句。

所以我遇到的问题是它只运行第一个语句,即使那天是 6(我在上面解释过)

我已经为这个问题绕了大约两个小时,这让我发疯了。我目前的想法是我的 if 语句语法不正确。

最佳答案

非常简单。如果 day = 6,你的第一个语句将起作用,因为你说

IF DAY IS NOT EQUAL TO 5
OR
DAY IS NOT EQUAL TO 6

所以当 day 不等于 5 时,它会起作用!你的第二个语句有 elseif 所以它在第一次做时不起作用。如果您希望您的第一个语句在第 6 天时不起作用,那么您必须告诉它

IF DAY IS NOT EQUAL TO 5
AND
DAY IS NOT EQUAL TO 6

所以一个简单的更新就是

if(($noshow == 1) && ($day != 5 && $day != 6 && $day != 0)){
$run = mysql_query("UPDATE employee_data SET points=points+5 WHERE ID=" . $id) or die(mysql_error());
}
elseif(($noshow == 1) && ($day == 5 || $day == 6 || $day == 0)){
$run = mysql_query("UPDATE employee_data SET points=points+7 WHERE ID=" . $id) or die(mysql_error());
}

提示:

每当您对 IF 条件的工作方式感到困惑时,请翻译 && 和 ||成英文阅读。例如,您的第一条语句将被读作

IF NO SHOW IS 1 AND (DAY IS NOT EQUAL TO 5 OR DAY IS NOT EQUAL TO 6 OR DAY IS NOT EQUAL TO 0)

以这种方式阅读它会更明显地表明即使在第 6 天这个陈述也是正确的

关于带有 && 和 || 的 PHP if/elseif 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176141/

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