Ce code boucle à travers une table MySQL et imprime des champs vides / nuls. Il imprime cependant les valeurs de la matrice et les touches telles que ceci Comment imprimer quelque chose comme ce champ "DOB" sur l'entrée "1" est vide / null code> < / p>
4 Réponses :
$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']); } } }
Je ne sais pas si je l'obtiens correctement, mais je pense que la solution à votre problème est la suivante:
Modifier la dernière ligne à: p>
C'est parce que vous utilisez print_r pour émettre ce tableau. La sortie est donc formatée lisible pour les humains. Pour que cela soit plus jolie, essayez de le parcourir comme vous l'avez fait auparavant avec ce champ:
foreach($emptyFields as $key => $field) { echo('Field "'.$field.'" on entry "'.$emptyField['userid'].'" is empty/null'); }
echo implode('<br>', $emptyFields);
Cela a bien fonctionné. Il imprime le champ "4" sur l'entrée "11" est vide / null champ "adresse" sur l'entrée "11" est vide / null. Ils sont tous les mêmes. Comment éviter le champ d'impression "4" sur l'entrée "11" est vide / null.
Je ne comprends pas de quoi avez-vous besoin. Vous voulez sauter des clés entières, ai-je raison? Il suffit d'utiliser vérifier si (! Is_integer ($ clé) et vide ($ champ)) code>.
Comment éviter d'imprimer des en-têtes de colonne à plusieurs reprises? par exemple. Le champ "nom" sur la colonne "2" est vide, champ "nom" sur la colonne "3" est vide. Je veux juste imprimer un champ "nom" et donner des détails plutôt sur une page séparée.
@Belinda: Merci pour l'édition