我的问题是这个
我有一个数据库,它将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>
我尝试在sprintf中使用if语句,但没有成功。
有没有人知道如何从
更改显示的代码<li class="status">3</li>
到
<li class="status">Delivered</li>
答案 0 :(得分:2)
使用数组:
$status = array('Submitted', 'Delivered', ...);
然后在显示时使用$status[$order['status']]
。
您也可以在SQL中执行此操作:
SELECT username,
CASE status
WHEN 0 THEN 'Submitted'
WHEN 1 THEN 'Delivered'
...
END AS status,
...