Изменение значения sprintf в соответствии со значением в строке

Моя проблема в этом

У меня есть база данных, которая хранит значение int в строке «status», которое я хочу представить для определенного статуса заказа:

0 = отправлено

1 = доставлено и т. Д.

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

Мой код для отображения всего списка

require 'database_connection.php';
$select_orders = "SELECT username, status, product1_num, product2_num FROM orders";

$result = mysql_query($select_orders);

<ol class="order_list">
<?php while ($order = mysql_fetch_array($result)) {
$order_row = sprintf("<li class='single_order %s'>
<ul>
<li class='username'>%s</li>
<li class='status'>%s</li>
<li class='product'>%s</li>
<li class='product'>%s</li>
</ul>
</li>",
$order['status'], $order['username'], $order['status'], $order['product2_num'], $order['product1_num']);
echo $order_row;
}
?>
</ol>

Я пытался использовать оператор if внутри sprintf, но безуспешно.

Кто-нибудь есть идеи, как изменить отображаемый код здесь с

<li class="status">3</li>

в

<li class="status">Delivered</li>

?

0

Решение

Используйте массив:

$status = array('Submitted', 'Delivered', ...);

Тогда используйте $status[$order['status']] когда вы показываете это.

Вы также можете сделать это в SQL:

SELECT username,
CASE status
WHEN 0 THEN 'Submitted'
WHEN 1 THEN 'Delivered'
...
END AS status,
...
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]