根据一行中的值更改 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,
...
我的问题是这个
我有一个数据库,它在行 "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,
...