2014-04-02 4 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 차 배열 항목을 확인하고 그 값을 얻을, 나는 루프를 계속하고 두번째 배열을 얻을 항목을 선택하고 표시하십시오.

POST에서이 어레이를 얻고 있습니다. 배열 ([prodname0] => 치킨 샌드위치 [포트 -0] => [prodname1] => 구운 치킨 샌드위치 [포트 -1] 치킨 살라미 샌드위치 [port-4] => 2 [prodname3] => [prodname4] => prodname5] => 치킨 햄 샌드위치 [port-5] => [prodname6] => 계란과 마요네즈 샌드위치 [port-6] => [prodname7] => Bhetki Fry [port-7] => [prodname8] => Pao Bhaji [port-8] => [prodname9] => 퍼프 [port-9] => [prodname10] => 치킨 커틀릿 [port-10] => [prodname11] => Mutton Chop [port-11] => prodname12] => Egg Devil [port-12] => [prodname13] => Paneer Cutlet [포트 -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

를 작동하지 않았다 – SagarPPanchal

+0

같은 결과를 시도 @techansaari :( – techansaari