7
votes

Tableaux PHP: Comment imprimer uniquement les valeurs de la matrice mais pas les clés

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 xxx

Comment imprimer quelque chose comme ce champ "DOB" sur l'entrée "1" est vide / null < / p> xxx


1 commentaires

@Belinda: Merci pour l'édition


4 Réponses :


0
votes
$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 commentaires

0
votes

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 à: xxx


0 commentaires

1
votes

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');
}


0 commentaires

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

3 commentaires

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)) .


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.