#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’, которая может иметь стили для темной темы. Важное примечание — все тематические таблицы должны иметь одинаковую структуру столбцов, иначе все может сломаться.