好的,所以我想改進我之前關於由MYSQL數據庫驅動的動態CSS的問題。我已經得到了這個工作的一個CSS類,但不是超過一個。我試圖做的是把一個while語句放在另一個語句裏面。我的數據庫由這個目前:動態數據庫驅動的CSS 2.0
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>";
這個偉大的工程爲索引內容,但它並不顯示頁腳樣式。這和我之前在這裏提到的主要區別在於,不是爲每個頁面手動設置相同的腳本來加載頁面特定的內容,我想將它包裝在一個函數中,並在標題中調用一次用它完成。我也嘗試爲頁面名稱設置$ GLOBALS和$ SESSION變量,但結果相同。 在側面說明我也使用了沒有額外的引號和句點的變量,也得到了相同的結果。在此先感謝大家! - 約翰
另外,可能有更好的方法來解決動態樣式化頁面的問題。我不知道你的目標是什麼,但是這個解決方案可能不會更難以維護,它可以增加頁面大小,並且不允許瀏覽器在CSS沒有改變的情況下緩存CSS。考慮每頁使用CSS文件(即爲「索引」頁面加載的「index.css」等)。您還可以構建CSS頁面的層次結構 - 一個用於頁面結構(頁眉,頁腳等)和其他用於頁面特定樣式的頁面。 – dariom