Есть ли способ стилизовать определенные данные, полученные из MySQL?

Я извлекаю данные из своей базы данных mySQL и вывожу их на свою страницу в порядке, однако я хочу стилизовать определенные данные на странице с помощью Bootstrap. Я пробовал писать функции для извлечения данных отдельно, но уверен, что делаю что-то не так.

Это для простой базы данных CRUD с использованием PHP и mySQL, оформленной с помощью Bootstrap 4 и JQuery. Я пытался написать функцию на странице вместо $row[status], но я думаю, что пропустил шаг.

Таблица должна выводить либо "EXP", либо "PAID" под $row["status"].

<?php if (isset($_POST['submit'])) {
    if ($result && $statement->rowCount() > 0) { ?>
        <h2>Results</h2>

        <table class = "table">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Status</th>
                </tr>
            </thead>
            <tbody>

        <?php foreach ($result as $row) { ?>
            <tr>
                <td><?php echo escape($row["id"]); ?></td>
                <td><?php echo escape($row["status"]); ?></td>
                <td><a class = "btn btn-warning" href = "update-single.php?id=<?php echo escape($row["id"]); ?>">Edit</a></td>
            </tr>
        <?php } ?>
        </tbody>
        </table>

Если $row["status"] из таблицы = "EXP" я хочу обернуть его с помощью span HTML пример: <span class = "badge badge-danger"> </span> обернуть, иначе если "PAID"<span class = "badge badge-success"> </span> обернут вокруг "PAID"

вы не можете просто сделать if\else и эхо?

user10051234 09.04.2019 00:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
44
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

заменить <td><?php echo escape($row["status"]); ?></td> на:

<td>
<?php
    if ($row["status"]=='EXP'){//assumes exp and paid are only option otherwise use an elseif
       echo '<span class = "badge badge-danger">';
    }else{
       echo '<span class = "badge badge-success">';
    }
echo escape($row["status"]).'</span>';
?>
</td>

Это решение было таким простым. Большое спасибо, сработало отлично!

eddiep 09.04.2019 17:46

Возможно, это то, что вы ищете?

Я обернул ваш диапазон по мере необходимости и сделал его более читабельным с помощью обозначения «:» вместо фигурных скобок.

<?php if (isset($_POST['submit'])): ?>
    <?php if ($result && $statement->rowCount() > 0): ?>
        <h2>Results</h2>
        <table class = "table">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Status</th>
                </tr>
            </thead>
            <tbody>
            <?php foreach ($result as $row) { ?>
                <tr>
                    <td><?php echo escape($row["id"]); ?></td>
                    <?php if ($row["status"] === "EXP"): ?>
                        <td><span class = "badge badge-danger"><?php echo escape($row["status"]); ?></span></td>
                    <?php elseif ($row["status"] === "PAID"): ?>
                        <td><span class = "badge badge-success"><?php echo escape($row["status"]); ?></span></td>
                    <?php endif: ?>
                    <td><a class = "btn btn-warning" href = "update-single.php?id=<?php echo escape($row["id"]); ?>">Edit</a></td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
    <?php endif; ?>
<?php endif; ?>

Если дублирование HTML не ваша вещь. Вы можете использовать переменную в цикле и изменить имя класса badge-{name} по своему вкусу.

Спасибо, попробуем это!

eddiep 09.04.2019 17:15

Мне понравилось это решение, но оно было немного дублирующим. Спасибо.

eddiep 09.04.2019 17:47

Предполагая, что status имеет только 2 возможных значения: EXP или PAID.

Вы можете изменить ячейку таблицы следующим образом:

<td><span class = "badge badge-<?php echo $row["status"] == "EXP" ? 'danger' : 'success' ?>"><?php echo escape($row["status"]); ?></span></td>

Другие вопросы по теме