Ne pas insérer un champ vide

Résolu
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008 - 18 déc. 2007 à 15:25
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008 - 18 déc. 2007 à 17:47
Bonjour,
Je viens chercher un peu d'aide pour un problème qui me semble facile, mais peut être à trop chercher je bloque depuis deux jours...
Voila, j'ai un formulaire avec une liste à choix multiples dont je récupére l'ID, là pas de problème.
En dessous j'ai un champs texte que je boucle pour le répéter 20 fois (je fais donc un array). Là toujours aucun problème.

Le problème est pour récupérer les données. Le champs de select se récupére correctement, et les entrée des champs texte de la boucle aussi, le hic c'est que meme si le champ est vide, il se met dans la base mysql.
J'ai pourtant mis un if qui devrait arreter la boucle si le champs est vide.
Si quelqu'un pouvait m'éclairer, je vous en remercis d'avance, voici le bout de code qui récupére les données:

$ListeAppelation = array() ;
$ListeAppelation = $_POST['nomappelation'] ;// nomappelation est donc le champs texte a récupérer
$RegionID = $_POST['selectregion'];

if (isset($ListeAppelation)){// c'est avec ce if là que j'essais de ne récupérer que les champs pleins, mais ça ne marche pas.

for ($i=0; $i<count($ListeAppelation); $i++) { // debut de boucle pour récupérer tous les champs
            $insertionappelation = " INSERT INTO appelation (RegionID, Appelation)
VALUES
                         ($RegionID,
                        '$ListeAppelation[$i]')";
                          mysql_query($insertionappelation) or die(mysql_error());
                          } // fin de boucle
                          }fin du if
                          }fin du isset de récupération de formulaire (je n'ai pas mis le bout de code, il marche)

?>
Merci

Lolo

2 réponses

cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
18 déc. 2007 à 17:26
Salut !

Je ne m'y connait pas beaucoup en tableaux, mais (je vais peut être dire une connerie), mais avec if (isset($ListeAppelation)), tu teste si le tableau existe.

for ($i=0; $i<count($ListeAppelation); $i++)
{ // debut de boucle pour récupérer tous les champs
   if(!empty($ListeAppelation[$i])){
            $insertionappelation = " INSERT INTO appelation (RegionID, Appelation)
                  VALUES
                         ($RegionID,
                        '$ListeAppelation[$i]')";
                          mysql_query($insertionappelation) or die(mysql_error());
   }
} // fin de boucle

Sous réserve...

<hr />
lowke<sub>y

WWJD for havin' a nice code ?</sub>
3
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
18 déc. 2007 à 17:47
Merci beaucoup Lowkey!
Effectivement c'été ça.
Je me bornais avec le test sur le tableau, pensant qu'il tester les valeurs et non comme tu me l'as préciser le tableau.
Un grand grand merci. Je l'avais testé mais sans le [$i], du coup ça testé aussi le tableau.
Bonne soirée, et merci!

Lolo
0
Rejoignez-nous