我有一个for每个循环,用于打印订单中给定销售项目的序列号,这是基于this question完成的。
if (($c["current_state"] == '16') || ($c["current_state"] == '4')) {
$snlst = $mysqli->query("SELECT sn FROM ps_serials WHERE id_product={$aritmlst["product_id"]} AND id_order=$oid ORDER BY sn ASC");
while ($id = mysqli_fetch_array($snlst)) {
$ids[] = $id;
foreach ($ids as $key => $id) {
echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($key +1)."</td><td>".$id['sn']."</td></tr>";
}
}
}
但问题是,我为我的列表获得了额外的表。为什么会这样呢?
发布于 2015-03-19 15:03:28
我不认为需要两个循环。这应该是足够的代码:
if (($c["current_state"] == '16') || ($c["current_state"] == '4')) {
$snlst = $mysqli->query("SELECT sn FROM ps_serials WHERE id_product={$aritmlst["product_id"]} AND id_order=$oid ORDER BY sn ASC");
$i = 0;
while ($row = mysqli_fetch_array($snlst)) {
$i++;
echo '<tr><td class="label" style="padding-left:15px">Serial Number ' . $i . '</td><td>' . $row['sn'] . '</td></tr>' . PHP_EOL;
}
}
发布于 2015-03-19 09:38:00
重写这一行:
while ($id = mysqli_fetch_array($snlst)) {
$ids[] = $id;
foreach ($ids as $key => $id) {
echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($key +1)."</td><td>".$id['sn']."</td></tr>";
}
}
对此:
while ($id = mysqli_fetch_array($snlst)) {
$ids[] = $id;
}
foreach ($ids as $key => $id) {
echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($key +1)."</td><td>".$id['sn']."</td></tr>";
}
发布于 2015-03-19 10:12:02
然后尝试一个简单的for循环,而不是foreach循环:
for($i= 0; $i < count($ids); $i++)
{
echo "<tr><td class=\"label\" style=\"padding-left:15px\">Serial Number ".($i+1)."</td><td>".$ids[$i]['sn']."</td></tr>";
}
https://stackoverflow.com/questions/29140855
复制相似问题