2013-10-25 31 views
1

我正在構建網站模板。這個模板我將用於我的20個網站。我正在使數據庫驅動。通過這種方式,當我想編輯它時,我可以從數據庫中取出任何東西或不必編輯每個頁面上的項目/屬性。如何將數據從MySQL數據庫中拉入到自己的文件/文件夾中的樣式表中?

我想能夠把我的數據庫中的顏色的CSS屬性。這是我的一些代碼。這段代碼是css。

@charset "utf-8"; 
/* CSS Document */ 
a { 
    display: block; 
    width: 100%; 
    color: <?php echo $styles_query_result[1]['a_color']; ?>; 
} 
a:link { 
    text-decoration: none; 
    color: <?php echo $styles_query_result[1]['a_link']; ?>; 
} 
a:visited { 
    text-decoration: none; 
    color: <?php echo $styles_query_result[1]['a_visited']; ?>; 
} 

現在,只要樣式位於主頁上,上面的代碼就可以工作。一旦我創建了一個樣式表並附加它,以使樣式作爲styles.css在它們自己的文件夾中,代碼就不再起作用。我不希望在主頁上保留樣式。

一旦樣式位於自己的文件和文件夾中,如何將數據庫中的數據拖入樣式表中。 styles.css位於根目錄中的文件夾中。

文件夾/根文件:

的index.php(移除此網頁的樣式)

CSS(並把風格在這裏styles.css的這個文件夾裏面。)

圖片

包括

在此先感謝!

+2

您試圖將php代碼放在'.css'文件中。此代碼不會執行,因爲樣式表是下載到客戶端_as-is_。 – geomagas

+0

Derp。應該知道這一點。無論如何要解決這個問題嗎? – user2833068

+0

爲了做到這一點,您必須直接將樣式聲明回顯到php文件中,您可以從數據庫中注入顏色。或者創建一個php文件,用於監視數據庫中的更改並重新創建樣式表的緩存副本。 –

回答

1

如果您有一個數據庫模板,您可以使用它創建一個.css文件,而無需在.css文件中使用php。

如果你有兩個表:

enter image description here

你可以用它來創建一個CSS文件。僞代碼:

<?php 

    //$db = new PDO('mysql:host=localhist;dbname=cms', 'root', 'root'); 

    //$query = $db->query("SELECT * FROM `selector`"); 
    //$query = $query->fetchAll(); 

    $query = array(
     array('id' => 1, 'selector' => '.thisone'), 
     array('id' => 2, 'selector' => '#thatone'), 
     array('id' => 3, 'selector' => '.body') 
    ); 

    $probs = array(
     1 => array(
      array('id' => 1, 'selector_id' => 1, 'css_element' => 'border', 'element_value' => '1px solid'), 
      array('id' => 2, 'selector_id' => 1, 'css_element' => 'padding', 'element_value' => '10px') 
     ), 
     2 => array(
      array('id' => 1, 'selector_id' => 2, 'css_element' => 'border', 'element_value' => '1px solid') 
     ), 
     3 => array(
      array('id' => 1, 'selector_id' => 2, 'css_element' => 'width', 'element_value' => '40px'), 
      array('id' => 2, 'selector_id' => 2, 'css_element' => 'height', 'element_value' => '40px') 
     ) 
    ); 

    $css = ''; 
    foreach($query as $selector){ 
     //$properties = $db->query("SELECT * FROM `properties` WHERE `selector_id` = $selector->id"); 
     //$properties = $properties->fetchAll(); 

     $properties = $probs[$selector['id']]; 

     $rules = ''; 
     foreach($properties as $element){ 
      $rules .= "\n \t$element[css_element]:$element[element_value];"; 
     } 

     $css .= "$selector[selector]".'{'."$rules \n".'}'."\n\n"; 
    } 

    $fp = fopen('style.css',"w"); 
    fwrite($fp,$css); 
    fclose($fp); 

    echo "<pre>"; 
    echo "$css"; 
    echo "</pre>"; 

?> 

結果將是:

.thisone{ 
    border:1px solid; 
    padding:10px; 
} 

#thatone{ 
    border:1px solid; 
} 

.body{ 
    width:40px; 
    height:40px; 
} 

您可以添加一個表css_file(ID,姓名),然後添加一個css_file_id到選擇器表。然後您也可以編寫多個文件。

此外,您可以創建一個編輯器表單,您可以在其中添加/刪除/更改css規則/選擇器/文件。

+0

謝謝你的回答,我現在正在使用它來查看。 – user2833068

+0

我愛它確切的是我在找什麼,我希望我可以實現這個到我的:[標題生成器](https://www.youtube.com/watch?v=yzXxGV9KZVk) – HenryW

+0

我似乎沒有那麼幸運得到從數據庫建立'$ probs'數組 – HenryW

相關問題