根据一行中的值更改 sprintf 值

Changing sprintf value according to value in a row

我的问题是这个

我有一个数据库,它在行 "status" 中存储 int 值,我想表示特定的订单状态:

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>

我尝试在 sprintf 中使用 if 语句但没有成功。

有谁知道如何更改此处显示的代码

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

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

?

使用数组:

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

然后在显示时使用$status[$order['status']]

您也可以在 SQL:

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