Как сверстать карточку товара с оценкой и привязать к БД

    При создании интернет-магазина часто требуется выводить не только характеристики товара, но и его рейтинг. Оценка от 1 до 5 в виде полосок или звезд делает карточку наглядной и повышает доверие пользователя. Разберём, как правильно сверстать такой шаблон и связать его с базой данных.

    Структура базы данных для хранения оценки

    Для хранения рейтинга товара добавьте в таблицу products целочисленное поле rating (тип TINYINT или INT). Значение может быть от 1 до 5. Пример SQL-запроса:

    ALTER TABLE products ADD COLUMN rating TINYINT DEFAULT 0;

    При добавлении или редактировании товара в админке указывайте оценку. Это может быть выпадающий список или визуальный выбор звезд.

    Верстка карточки товара с рейтингом

    Создайте HTML-шаблон, который выводит название, характеристики и полоски рейтинга. Используйте CSS для отображения заполненных и пустых полосок. Пример структуры:

    <div class='product-card'>
      <h3>Название товара</h3>
      <ul class='specs'>
        <li>Характеристика 1</li>
        <li>Характеристика 2</li>
      </ul>
      <div class='rating'>
        <div class='rating-fill' style='width: 60%'></div>
      </div>
    </div>

    В CSS задайте классы .rating (контейнер серых полосок) и .rating-fill (заполненная часть). Ширина заполнения вычисляется как (оценка / 5) * 100%.

    Динамическое отображение через PHP/шаблонизатор

    При выводе из базы данных подставьте значение rating в атрибут style. Пример на PHP:

    <?php
    $rating = $product['rating']; // от 1 до 5
    $width = ($rating / 5) * 100;
    ?>
    <div class='rating-fill' style='width: <?= $width ?>%'></div>

    Для шаблонизаторов (Twig, Blade) логика аналогична: передаёте переменную rating и вычисляете процент.

    Пример готового шаблона верстки

    Вот минимальный CSS-код для полосок рейтинга:

    .rating {
      height: 12px;
      background: #e0e0e0;
      border-radius: 6px;
      overflow: hidden;
    }
    .rating-fill {
      height: 100%;
      background: #f5a623;
      border-radius: 6px;
      transition: width 0.3s;
    }

    Такой шаблон легко адаптировать под любые характеристики: добавьте блок .specs для списка параметров. Все данные подгружаются из БД через SQL-запрос SELECT name, rating, ... FROM products WHERE id = ?.

    Часто задаваемые вопросы

    Ниже собраны ответы на популярные вопросы по верстке карточек с рейтингом и интеграцией с базой данных.

    Часто задаваемые вопросы