gpt4 book ai didi

php - 停止 PHP if 语句覆盖下面的 CSS 语句?对 MySQL 正确吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:19 24 4
gpt4 key购买 nike

我有一个日历,其中根据使用 PHP 的不同变量将不同的背景颜色应用于每个单元格。我正在使用 if 语句根据当天是否是今天、当天是否已安排轮类或当天是否安排假期来更改设置为 TD 的样式。

这行得通,但后来我意识到,如果假期被安排在轮类的那一天,不管它是否是假期,它仍然会被着色为轮类。我知道这是因为 IF 语句的顺序。所以我想问问有没有办法解决这个...

但后来我意识到,因为我正在使用一个系统,其中有不同的用户,而不仅仅是一个人,如果是一个人,这无关紧要,因为他们不能在同一天预订轮类和假期。

但是...每个用户都可以通过它的颜色看到一天是否被预订为轮类或假期(没有显示更多细节,例如预订了那天的用户)我需要分配不同的为轮类或假期预订的一天涂上颜色。

所以在意识到所有这些之后(抱歉,如果它没有用的背景故事)我现在的问题是(至少我认为是..!)我如何创建一个 MySQL 语句,从表中选择日期预订的条目为轮类和假期。

我的数据库设计有五列:id、surname、stafflevel、datebooked 和 typebooked。我目前的工作方式代码是:

$ifShift ="SELECT * FROM schedule WHERE dateBooked = '".$dateToCompare."' AND typeBooked = 'shift'";
$tdShift = mysql_num_rows(mysql_query($ifShift));
$ifHoliday ="SELECT * FROM schedule WHERE dateBooked = '".$dateToCompare."' AND typeBooked = 'holiday'";
$tdHoliday = mysql_num_rows(mysql_query($ifHoliday));

if ($tdShift) {
echo "class='shift'";
} elseif($tdHoliday) {
echo "class='holiday'";
}

我试过用

select * from schedule where dateBooked = '26/12/2014' AND (typeBooked = 'shift' AND 'holiday');

在终端中用我的表进行测试并收到一条消息“空集,1 个警告”...那么我该如何处理...如果可能的话?

但是我不会还有原来的 if 语句顺序问题吗?

谢谢大家!

最佳答案

试试这个:

$classes = array();
if ($tdShift) {
$classes[] = 'shift';
}
if($tdHoliday) {
$classes[] = 'holiday';
}

if(!empty($classes)) {
echo 'class="'.implode(' ',$classes).'"';
}

在你的 CSS 中类似于:

td.shift {
background-color: #77B;
}
td.holiday {
background-color: #B77;
}
td.shift.holiday {
background-color: #7B7;
}

您最终应该得到蓝移(呵呵)、红色假期和假期绿色转移。随意修改。

[编辑]建议的单查询解决方案:

//grab all types for this date
$sched_types = mysql_query("SELECT typeBooked FROM schedule WHERE dateBooked = '".$dateToCompare."'");
//empty classes array
$classes = array();
//append classes array with collected types
if($sched_types && mysql_num_rows($sched_types) > 0) {
while($sched_type = mysql_fetch_assoc($sched_types)) {
$classes[] = $sched_type['typeBooked'];
}
}
//echo your classes
if(!empty($classes)) {
echo 'class="'.implode(' ',$classes).'"';
}
//free result
mysql_close($sched_types);

它应该支持更多类型,例如 - 您可以添加第三条记录,其类型为“shift”或“holiday”,代码将自行附加一个新类。另外,最好使用不会与其他人冲突的类名,例如“day-shift”和“day-holiday”。

($classes[] = 'day-' . $sched_type['typeBooked'];)

关于php - 停止 PHP if 语句覆盖下面的 CSS 语句?对 MySQL 正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27555166/

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