2012-01-02 2 views
0

첫 번째 결과가 비어있는 경우 두 번째 else 문을 반향하도록 PHP 스크립트를 가져올 수 없습니다.PHP 인쇄 Null 배열 결과 방지?

내 스크립트가 현재 작동하는 방식은 "주소 목록 (다른 배열)> 목록 메모"입니다. 그러나 주소가 비어있는 경우에도 주석을 인쇄하거나 아무 것도 인쇄하지 않습니다. 단어 "No comment".

if(!empty($row['id'])) 
     { 
     echo "$row[comment]<br/>"; 
     } 
     else 
     { 
      echo "no comment<br/>"; 
     } 

도움을 주시면 감사하겠습니다. 감사.

+0

가'배열에 포함 된 정확히보고'위해서 var_dump ($ 행)를보십시오. 무슨 일이 일어나는지 [type comparison tables] (http://www.php.net/manual/en/types.comparisons.php)와 대조하십시오. – cmbuckley

답변

4

이 가정하면 데이터베이스에서 제공하고 각 행에 id을 가지고,이 항상 사실이 될 것이다 :

if(!empty($row['id'])) 

시도 : id는 뭔가 다른, 같은 논리는

if(!empty($row['comment'])) 

경우 적용 : 인쇄하려는 값을 확인하십시오.

if (!empty($row['id']) && !empty($row['comment'])) 
{ 
    echo $row['comment'].'<br/>'; 
} 
else 
{ 
    echo "no comment<br/>"; 
} 

EDIT :이 코드가 게시물 등에 첨부 된 모든 메모를 반복하는 경우 메모가없는 경우 출력되지 않습니다. 회 돌파. 이 경우 다음과 같은 것을 시도 :

if (count($comments) === 0) 
{ 
    echo "no comments<br />"; 
} 
else 
{ 
    foreach ($comments as $row) 
    { 
     if (!empty($row['comment'])) 
     { 
      echo $row['comment'].'<br />'; 
     } 
     else 
     { 
      echo "no comment<br />"; 
     } 
    } 
} 

OR을 :

$comment_count = 0; 

foreach ($comments as $row) 
{ 
    if (!empty($row['comment'])) 
    { 
     echo $row['comment'].'<br />'; 
     $comment_count++; // We have at least one comment 
    } 
    else 
    { 
     echo "no comment<br />"; 
    } 
} 

if ($comment_count === 0) echo 'no comments<br />'; 
+0

안녕하세요, 나는 이것을 시도했지만 여전히 이전과 똑같이 울립니다. 내가 뭘 하려는지 더 잘 알기 위해 스크린 샷을 첨부했습니다. (http://img.photobucket.com/albums/v638/lisss001/ScreenShot2012-01-02at225454.png) [/ 링크] 먼저 속성을 살펴보고 관련된 주석을 표시합니다. 나는 왜 저의 인생이 빈칸을 숨기지 않는지 생각해 내지 못합니다. 첨부 된 스크린 샷에서 이들은 페이지를 가로 질러 노란색 선으로 나타납니다 (css가 결과를 둘러싸기로되어 있음). 도와 주셔서 감사합니다 ... – liveman

+0

이것이 귀하의 게시물에 귀하의 완전한 관련 코드를 추가해야하는 데 도움이되지 않으면 귀하의 문제가 무엇인지 짐작했습니다. –

+0

글쎄, 문제없이 문제가 인쇄됩니다. 결과는 데이터베이스에서 가져오고 주석은 가져오고 나열됩니다. 집의 ID가 주석의 하우징과 일치하면 배열을 사용하여 주석이 나열되고 순서대로 인쇄됩니다. – liveman