2014-04-02 272 views
0

我得到一个数组在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">&nbsp;</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> 

这里是我的结果的屏幕截图 enter image description here 感谢

我的逻辑是:首先我检查第1个数组项与数据库并获取它的值,然后我继续循环,并获得第2个数组项目并显示它。

我现在要做的是:我在开机自检后得到这个数组 Array([prodname0] => Chicken Sandwich [port-0] => [prodname1] =>烤鸡肉三明治[port-1] => 2 [prodname2] => Tanu's Special Chicken Sandwich [port-2] => 2 [prodname3] =>奶酪三明治[port-3] => [prodname4] =>鸡肉萨拉米三明治[port-4] => prodname5] =>鸡火腿三明治[port-5] => [prodname6] =>鸡蛋和Mayoinnaise三明治[port-6] => [prodname7] => Bhetki Fry [port-7] => [prodname8] => Pao Bhaji [port-8] => [prodname9] => Puffs [port-9] => [prodname10] => Chicken Cutlet [port-10] => [prodname11] => Mutton Chop [port-11] => prodname12] =>蛋魔[port-12] => [prodname13] => Paneer Cutlet [port-13] =>)

我可以更改它为喜欢:鸡肉三明治=>烤鸡肉三明治=> 2 这会做好我的工作,我认为

回答

1

简单的解决办法来做到这一点:

foreach ($_POST as $key => $value) { 
    if(empty($value){ 
     continue; 
    } 

    // Other code 

} 

首先检查如果POST值是空的,如果它是,使用continue关键字跳过循环中的其余代码。替换应用

0

与此

<?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">&nbsp;</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 
    ?> 
+0

你的PHP代码,但没有奏效:( – techansaari

+0

@techansaari试试这个更新的代码 – SagarPPanchal

+0

相同的结果,我的代码没有变化 – techansaari