2011-03-23 2 views
7

이 코드는 mysql 테이블을 순환하여 빈/null 필드를 인쇄합니다. 그것은 그러나 나는이 field "dob" on entry "1" is empty/nullPHP 배열 : 배열 값만 인쇄하고 키는 인쇄하지 않는 방법

내가 올바르게를 얻는 경우에 잘 모릅니다
$sql = "SELECT * FROM userinfo"; 
$res = mysql_query($sql); 
while ($row = mysql_fetch_array($res)) { 
    foreach($row as $key => $field) { 
     if(empty($field)) { 
      $emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $key, $row['userid']); 
     } 
    } 
} 
print_r($emptyFields); 
+0

@Belinda을 : 편집 주셔서 감사합니다 – karto

답변

9
echo implode('<br>', $emptyFields); 
+0

을 잘 인쇄했습니다. 엔트리 "11"의 필드 "4"가 비어 있음/null 엔트리 "11"의 필드 "address"가 비어 있거나 null입니다. 그들은 모두 동일합니다. 어떻게 "11"빈/null 항목에 인쇄 필드 "4"피할 수 있습니다. – karto

+0

나는 무엇이 필요한지 이해하지 못한다. 정수 키를 건너 뛰고 싶습니다. 맞습니까? 'if (! is_integer ($ key) AND empty ($ field))'를 체크하면됩니다. – biakaveron

+0

감사합니다. 작동했습니다. :-) – karto

0
$sql = "SELECT * FROM userinfo"; 
$res = mysql_query($sql); 
while ($row = mysql_fetch_array($res)) { 
    foreach($row as $key => $field) { 
    if(empty($field)) { 
     $emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $key, $row['userid']); 
    } 
    } 
} 
0

뭔가를 인쇄하는 방법이

Array ( 
    [0] => Field "dob" on entry "1" is empty/null 
    [1] => Field "user_name" on entry "7" is empty/null 
) 

같은 배열 값과 키를 인쇄하지만 난에 대한 해결책을 생각한다 문제는 다음과 같습니다

변화 마지막 줄에 :

$emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $field, $row['userid']);}}}print_r($emptyFields); 
1

해당 배열을 출력하기 위해 print_r을 사용하고 있기 때문입니다. 따라서 출력물은 사람이 읽을 수 있도록 형식이 지정됩니다. 는 해당 필드에 이전처럼 더 예쁜 그것을 반복하려고 만들려면 :

foreach($emptyFields as $key => $field) { 
echo('Field "'.$field.'" on entry "'.$emptyField['userid'].'" is empty/null'); 
} 
+0

감사합니다. 그것은 작동합니다. 그것은 – karto