我正在尝试使用表单在数据库中的表中设置颜色,然后将这些颜色调用到我的样式表中(style.php)
手动定义颜色变量可以:
<?php
header("Content-type: text/css");
$color1 = '#cc0000';
?>
#thisdiv { background-color: <?php echo $color1; ?>; }
但这不会:
<?php
header("Content-type: text/css");
$getSettings = mysqli_query($db, "SELECT * FROM settings WHERE setting_id = 1");
$setting = mysqli_fetch_assoc($getSettings);
$color1 = $setting['setting_color1'];
?>
#thisdiv { background-color: <?php echo $color1; ?>; }
我的"设置"表如下所示:
setting_id | setting_color1 | setting_color2 | setting_color3
1 | #cc0000 | #000000 | #ffffff
我怎样才能让它正常工作?也许我做错了什么,或者我只是忽略了一些愚蠢的事情。任何帮助,不胜感激。
<?php
header("Content-type: text/css");
$getSettings = mysqli_query($db, "SELECT * FROM settings WHERE setting_id = 1");
// --------------------------^ and where is that defined?
$setting = mysqli_fetch_assoc($getSettings);
$color1 = $setting['setting_color1'];
?>
#thisdiv { background-color: <?php echo $color1; ?>; }
您应该始终验证您的查询是否成功运行,这并不难。
<?php
if($result = mysqli_query($db, 'SELECT * FROM table') != false){
var_dump(mysqli_fetch_assoc($result));
// hurray, query ran successfully.
// Now execute the code that sets the variable.
} else {
// On fail, perhaps load from cache?
}
?>
其次,在我看来,您的数据库结构是错误的。尝试类似下面的操作。
设置:
id (primary key)| key (varchar)| value (varchar)| type (varchar)| decryption (text) | theme (int)
1 mycolor AABBCC hex Background of we.. 1
$sql = 'SELECT key, value, type FROM settings WHERE theme = 1'; // etc..
这样,您就可以更好地控制您的"主题"。然后,您可以同时获取结果并设置:$arr[$row['key']] = $row['value']
。