Как сделать вывод из БД цветным?

Задача следующая: Есть классный журнал, куда выставляются оценки, они сохраняются, но нужно сделать так, чтобы они выводились цветными, причем каждая имеет свой цвет. "2" - красный "3" - желтая "4" - синяя "5" - зеленый. Помогите, буду очень всем вам благодарен!

 // сюда ставятся оценки  
echo "<td><input type='text' name='" . $inputName . "' value='" . $value . "' size='1' style='border: none; width:25px' onblur='saveMark(this)' /></td>";

//Надо что бы было на каждой оценки вот так:
<span class="badge text-bg-success">5</span>
<span class="badge text-bg-primary">4</span>
<span class="badge text-bg-warning">3</span>
<span class="badge text-bg-danger">2</span>

Ответы (1 шт):

Автор решения: TheRetroHome

Примерно так должно работать. Сделаем функцию подобного рода

function getMarkBadge($value) {
    switch ($value) {
        case 2:
            return "<span class='badge text-bg-danger'>$value</span>";
        case 3:
            return "<span class='badge text-bg-warning'>$value</span>";
        case 4:
            return "<span class='badge text-bg-primary'>$value</span>";
        case 5:
            return "<span class='badge text-bg-success'>$value</span>";
        default:
            return "<span>$value</span>";
    }
}

И дальше просто используем её

echo "<td>" . getMarkBadge($value) . "</td>";

Есть ещё такой вариант кода

function getMarkBadge($value) {
    $colors = [
        2 => 'danger',
        3 => 'warning',
        4 => 'primary',
        5 => 'success'
    ];
    $color = $colors[$value] ?? 'secondary'; // 'secondary' как более нейтральный цвет для неопределенных значений
    return "<span class='badge text-bg-{$color}'>$value</span>";
}
→ Ссылка