PHP每天根据数据库中的日期更改背景图像

时间:2017-08-19 09:52:55

标签: php

我有一个PHP代码来设置每日后台页面更改(每天更改基于数据库中的日期名称)

在我的桌子上

BACKGROUND_DAY | BACKGROUND_IMAGE
Monday         | White.png
Tuesday        | Black.png
Wednesday      | Yellow.png
\\until Sunday

然后我查询它:

$day = date("l");

$qBackground = oci_parse($c1, "SELECT * FROM WA_GA_TBL_BACKGROUNDS");
oci_execute($qBackground);
while($dBackground = oci_fetch_array($qBackground))
{
   $backgroundDayArray[] = $dBackground['BACKGROUND_DAY'];
   $backgroundImageArray[] = $dBackground['BACKGROUND_IMAGE'];
}

//print_r backgroundDayArray
Array ( [0] => Saturday [1] => Wednesday [2] => Friday [3] => Tuesday [4] => Thursday [5] => Monday [6] => Sunday ) 

$bg_color =  isset($backgroundImageArray[$day]) ? $backgroundImageArray[$day] : 'black';

并将其设置为HTML

<style>
html
{
    background: url(assets/img/background/<?php echo $bg_color; ?>) no-
    repeat center center fixed;
}
</style>

结果是页面没有显示任何内容。

我想要的是,

根据表日设置背景图像。如果今天是星期一,则将其设置为星期一的背景图像。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你甚至不需要在这里使用while循环。当您查询数据库时,使用PHP date('l')传递查询中的当前日期。这将动态获取当前日期的颜色。

$day = date('l'); 
$query = "select BACKGROUND_IMAGE from WA_GA_TBL_BACKGROUNDS where BACKGROUND_DAY = $day";

确保您回显当前背景图片的页面具有.php扩展名。还要确保路径存在。

答案 1 :(得分:0)

$backgroundImageArray是一个以int为键的关联数组。因此,$backgroundImageArray[$day]将始终未设置,您的条件将导致blackprint_r($backgroundImageArray)会给你提示。 在while循环中,用

替换数组语句
$backgroundImageArray[$dBackground['BACKGROUND_DAY']] = $dBackground['BACKGROUND_IMAGE'];

它应该有用。