动态数据库驱动的CSS 2.0

动态数据库驱动的CSS 2.0,css,database,dynamic,Css,Database,Dynamic,好的,所以我试图改进我之前关于MYSQL数据库驱动的动态CSS的问题。我已经得到这个工作的一个CSS类,但不是一个以上。我想做的是把一个while语句放在另一个while语句中。我的数据库目前包括以下内容: table styles id - class - style - setting - page 1 header width 1000px index 2 header height 200px index 3 footer width 10

好的,所以我试图改进我之前关于MYSQL数据库驱动的动态CSS的问题。我已经得到这个工作的一个CSS类,但不是一个以上。我想做的是把一个while语句放在另一个while语句中。我的数据库目前包括以下内容:

table styles
id - class - style - setting - page
1    header  width   1000px    index
2    header  height  200px     index
3    footer  width   1000px    index
我的代码如下:

$pname = $_SERVER['REQUESTED_URI'];
$class_query = mysql_query("SELECT DISTINCT(class) AS class FROM styles WHERE pname='".$pname."'");
$style_query = mysql_query("SELECT style, setting FROM styles WHERE pname='".$pname."' AND class='".$class_result['class']."'");
echo "<style>";
while($class_result_row = mysql_fetch_array($class_query,MYSQL_ASSOC))  {
    echo ".".$class_result_row['class']."{";
    while($style_result_row = mysql_fetch_array($style_query,MYSQL_ASSOC)) {
        echo $style_result_row['style'].":".$style_result_row['setting'].";";
    }
    echo "}";
}
echo "</style>";
$pname=$\u服务器['REQUESTED\u URI'];
$class_query=mysql_query(“从pname='“$pname.”的样式中选择不同的(类)作为类”;
$style_query=mysql_query(“选择样式,从样式中进行设置,其中pname='”“$pname.”和class='“$class_结果['class'].”””);
回声“;
而($class\u result\u row=mysql\u fetch\u array($class\u query,mysql\u ASSOC)){
回声“.$class_result_行['class']。”{”;
而($style\u result\u row=mysql\u fetch\u array($style\u query,mysql\u ASSOC)){
echo$style_result_row['style']。”:“$style_result_row['setting']。”;”;
}
回声“}”;
}
回声“;
这对索引内容非常有用,但它不显示页脚样式。这与我之前在这里提出的问题之间的主要区别在于,不是手动为每个页面设置相同的脚本来加载页面特定的内容,而是将其包装在一个函数中,在标题中调用一次,然后使用它。我还尝试为页面名称设置$GLOBALS和$SESSION变量,但结果相同。
另一方面,我也使用了没有额外引号和句点的变量,得到了同样的结果。提前谢谢大家--John

我认为每次迭代类查询结果时都必须执行样式查询。尝试以下方法:

$pname = $_SERVER['REQUESTED_URI'];
$class_query = mysql_query("SELECT DISTINCT(class) AS class FROM styles WHERE pname='".$pname."'");
echo "<style>";
while($class_result_row = mysql_fetch_array($class_query,MYSQL_ASSOC))  {
    echo ".".$class_result_row['class']."{";
    $style_query = mysql_query("SELECT style, setting FROM styles WHERE pname='".$pname."' AND class='".$class_result_row['class']."'");

    while($style_result_row = mysql_fetch_array($style_query,MYSQL_ASSOC)) {
        echo $style_result_row['style'].":".$style_result_row['setting'].";";
    }
    echo "}";
}
echo "</style>";
$pname=$\u服务器['REQUESTED\u URI'];
$class_query=mysql_query(“从pname='“$pname.”的样式中选择不同的(类)作为类”;
回声“;
而($class\u result\u row=mysql\u fetch\u array($class\u query,mysql\u ASSOC)){
回声“.$class_result_行['class']。”{”;
$style_query=mysql_query(“选择样式,从样式中设置,其中pname='”“$pname.”和class='“$class_结果_行['class'].””;
而($style\u result\u row=mysql\u fetch\u array($style\u query,mysql\u ASSOC)){
echo$style_result_row['style']。”:“$style_result_row['setting']。”;”;
}
回声“}”;
}
回声“;

另外,可能有更好的方法来解决动态设置页面样式的问题。我不知道你的目标是什么,但这个解决方案可能不太难维护,它可以增加页面大小,如果不改变的话,也不允许浏览器缓存CSS。考虑使用每个页面的CSS文件(即为索引页加载的“index .css”等)。你也可以建立一个CSS页面的层次结构——一个用于页面结构(页眉、页脚等),另一个用于页面特定的样式。这就是我首先来到这里的原因!非常感谢,这已经困扰了我一个星期了。我知道有一种更简单的方法来调用它,很高兴看到我这次使用的命令是正确的……只是把它们放在它们所属的地方。没问题。我很高兴能帮上忙:-)看看我在你的问题上加的评论,仔细想想这是否真的是你想要的方法。如果您想了解更多其他方法,请问另一个问题!哈哈,我一定会要求更多!我对此做了很多思考,现在看来这是我能想到的最好的答案。我正在建立我自己的游戏/论坛/社交网站,很多页面将有一个类似的框架,但每个元素有不同的tweek。类似于使用相同页面的登录区域和非登录区域。myheader.php是我调用此函数的地方,我在数据库中已经有了一些设置,这些设置超出了我为本例键入的设置范围。它应该是可怕的,当它完成,与后端改变设置的飞行