Как сохранить css в базе данных mysql и вызвать его обратно для отображения в html

#php #html #mysql #database

#php #HTML #mysql #База данных

Вопрос:

Я хотел бы сохранить свой css в базе данных mysql. Но как я должен предполагать его сохранить. И как вызвать его обратно для отображения на странице html.

Примечание: я просто хочу сохранить css только в базе данных mysql

Комментарии:

1. Вы знаете, как записывать и читать из базы данных?

2. здравствуйте, у вас есть что-нибудь попробовать?

3. я вполне знаю, но не настолько умный

Ответ №1:

Я не уверен, что хранение CSS в базе данных является хорошей идеей, но поскольку вы явно запрашиваете его, вы можете следовать этому подходу.

 TABLE: styles

| id | selector | style_name   |
|----|----------|--------------|
| 1  | body     | align-center |
| 2  | .d-flex  | display-flex |
| 3  | #badge   | custom-badge |

TABLE: styles_css

| id | style_name   | property     | value     |
|----|--------------|--------------|-----------|
| 1  | align-center | text-align   | center    |
| 2  | display-flex | display      | flex      |
| 3  | custom-badge | color        | red       |
| 4  | custom-badge | font-size    | 1.5rem    |

  

Затем, когда вам понадобятся стили для вашего HTML, вы можете объединить эти таблицы, чтобы получить стили CSS.

 SELECT `property`, `value`
FROM `styles_css` 
LEFT JOIN `styles`
ON `styles`.`style_name` = `styles_css`.`style_name`
WHERE
`styles`.`selector` = '#badge';
  

Это даст вам

 | property   | value    |
|------------|----------|
| color      | red      |
| font-size  | 1.5rem   |
  

Пример:

 <?php
    // prepare statement and bind params(PDO would be a good option)
    $sql = "
        SELECT `property`, `value`
        FROM `styles_css` 
        LEFT JOIN `styles`
        ON `styles`.`style_name` = `styles_css`.`style_name`
        WHERE
        `styles`.`selector` = '#badge';
    ";
     //after execution, something like $styles = $db->exec($sql);
    foreach($styles as $property => $value) {
        $css = "{$property} : {$value}; "; 
    }
    // remove trailing semi-colon
    $css = rtrim($css, ';');
?>
  

Комментарии:

1. таким образом, это означает, что внутри базы данных может быть только одна тема (например: цвет темы: синий)

2. Не обязательно, вы можете указать имя первой таблицы как «classic» вместо style, что означает, что у нее есть стили для классической темы. У вас может быть другая таблица с именем ‘dark’, которая может иметь стили для темной темы. Важное примечание — все тематические таблицы должны иметь одинаковую структуру столбцов, иначе все может сломаться.