我在POST中得到了一个有2个字段的数组,基于第一个字段从mysql表中获取匹配的数据来显示,它在这里工作得很好。但是数组中的第二个字段可能是空的,我不想显示它们,这是我的代码。
<p class="yorder">
<?php
foreach ($_POST as $key => $value) {
$exp_key = substr($key, 0, 1);
if($exp_key[0] == 'p'){
if($i % 2 != 0){
$tprod = mysql_real_escape_string($value);
$sql = "SELECT * FROM menuitem WHERE prodname = '". $tprod ."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
?>
<span class="o1"> </span>
<span class="o2"><?php echo $value; ?></span>
<?php } if($i % 2 != 0){ $i++; continue;} ?>
<span class="o3"><?php echo $value; ?></span>
<span class="o4"><?php echo $value * $row['price']; ?></span>
<?php $i++;}
}
?>
</p>这是我的结果的屏幕截图

谢谢
我的逻辑是:首先我用数据库检查第一个数组项并获取它的值,然后继续循环并获得第二个数组项并显示它。
我现在尝试做的是:我正在POST数组中获得这个数组( prodname0 =>鸡肉三明治端口-0 => prodname1 =>烤鸡三明治端口-1 => 2 prodname2 => Tanu的特制鸡肉三明治端口-2 => 2 prodname3 =>鸡肉三明治端口-3 => prodname4 =>鸡肉沙拉米三明治端口-4 => prodname5 =>鸡肉火腿三明治端口-5 => prodname6鸡蛋和蛋黄酱三明治端口-6 Bhetki薯条端口-7 Pao port-8 Puff port-9鸡排端口-10 Mutton Chop端口-11 => prodname12 =>鸡蛋恶魔端口-12 => prodname13 => Paneer Cutlet端口-13 => )
我能把它改成:鸡肉三明治=>烤鸡肉三明治=> 2我想这能胜任我的工作。
发布于 2014-04-02 20:47:05
一个简单的解决方案是这样做:
foreach ($_POST as $key => $value) {
if(empty($value){
continue;
}
// Other code
}首先检查POST值是否为空,如果为空,则使用continue关键字跳过循环中的其余代码。
发布于 2014-04-02 20:52:17
用以下代码替换您的php代码
<?php
foreach ($_POST as $key => $value) {
$exp_key = substr($key, 0, 1);
if(!empty($key) || !empty($value)){ //edited portion
if($exp_key[0] == 'p'){
if($i % 2 != 0){
$tprod = mysql_real_escape_string($value);
$sql = "SELECT * FROM menuitem WHERE prodname = '". $tprod ."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
?>
<span class="o1"> </span>
<span class="o2"><?php echo $value; ?></span>
<?php } if($i % 2 != 0){ $i++; continue;} ?>
<span class="o3"><?php echo $value; ?></span>
<span class="o4"><?php echo $value * $row['price']; ?></span>
<?php $i++;}
}
} //edited portion
?>https://stackoverflow.com/questions/22811913
复制相似问题