Prévenir un array vide posté

Mammouth du PHP | 737 Messages

30 mars 2006, 12:43

Bonjour,

J'ai un p'tit souci :

Y a t-il un moyen de vérifier si un tableau construit à partir de valeurs postées est vide ou non car je voudrais afficher un message d'erreur dans ce cas au lieu d'une belle erreur : Warning: Invalid argument supplied for foreach()...J'ai fait des recherches et tests mais en vain.
Pour biaiser le système j'ai fait des bidouilles en javascript et type='hidden' mais ca ne me plait pas ^^


Voici la portion de code incriminée :
$query = "SELECT * FROM films WHERE id_film='truc'";
  foreach ($_POST['choix'] as $choix => $val){
J'ai bien essayé un exit ou un die sur la requête finale mais ca me casse ma mise en page :cry:

J'ai testé aussi un truc du genre :
$query = "SELECT * FROM films WHERE id_film='truc'";
 foreach ($_POST['choix'] as $choix => $val){
$count = count($_POST['choix']);
if ($count < 1){echo "Sans choix, pas d'anchois, c'est la loi :p ";}
En vain...

Mega :wink:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mars 2006, 12:45

il te suffit de compter le nombre d'element le composant avec count et s'il y en a 0, c'est qu'il est vide
$query = "SELECT * FROM films WHERE id_film='truc'";
if (count($_POST["choix"]) > 0) {  
  foreach ($_POST['choix'] as $choix => $val){
    ...
  }
} else {
  echo "Le tableau est vide";
}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

30 mars 2006, 17:13

Merci Zeus, je regarde ça, c'était juste une question d'ordre, une logique des choses :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mars 2006, 17:46

c'est vrai que si tu parcours le tableau avant de vérifier les cases qu'il contient ... :-k
:langue:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer