Problème de if et else
Fermé
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
-
19 mars 2013 à 14:53
merevinh Messages postés 30 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 6 octobre 2014 - 19 mars 2013 à 17:08
merevinh Messages postés 30 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 6 octobre 2014 - 19 mars 2013 à 17:08
8 réponses
salut,
il faut toujours mettre deux signes == dans un if sinon, la conditions est forcément vraie ;-)
il faut toujours mettre deux signes == dans un if sinon, la conditions est forcément vraie ;-)
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 15:11
19 mars 2013 à 15:11
Le problème c'est que je peux mettre autant de égal que je veux ça ne marche pas je rentre mon message de confirmation. Un message bidon matérialisé par
echo"pouet";, mais quand je vérifie dans la base de données il n'y a rien l'id ne se créé pas pourtant ma requête marche bien car je l'ai testé sur mysql
1 -> pourquoi la boucle if est commentée?
2 -> le condition ne peut pas être vraie visiblement car "Sacs Papier" est différent de "Sac en Papier" et aussi différent que "Sac Papier"
3 - > je te confirme qu'il faut mettre == dans la boucle
bon courage :-)
2 -> le condition ne peut pas être vraie visiblement car "Sacs Papier" est différent de "Sac en Papier" et aussi différent que "Sac Papier"
3 - > je te confirme qu'il faut mettre == dans la boucle
bon courage :-)
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 15:33
19 mars 2013 à 15:33
désolé pour le commentaire c'était pour réaliser un var_dump avant, je ne dis pas que tu as a tord au contraire j'ai fait ce que tu m'as dis, déjà de une je me suis trompé sur le nom du champ de la colonne 1 c'est Sacs en Papiers et pas Sac en Papier et j'ai rajouté un deuxième égal mais cela ne marche toujours pas je n'ai rien qui s'affiche dans la base de données, pourtant quand je fais un var_dump sur $champ 1 il reconnait qu'il y a Sacs en Papiers dedans ainsi que deux autres catégories différentes......
la boucle if est toujours commentée ou pas ? sinon, faudrait être certain de bien rentrer dans le if.
je te propose de mettre un echo "avant la requete" et un echo "apres la requete" :
if($champ1 == "Sacs en Papier"){
echo "avant la req";
$req = mysql_query("insert into ps_category(id_category, id_parent) values('', 2)");
echo "après la req";
comme ça, on saura si on rentre dans le if et si la requete s'est exécutée ;-)
je te propose de mettre un echo "avant la requete" et un echo "apres la requete" :
if($champ1 == "Sacs en Papier"){
echo "avant la req";
$req = mysql_query("insert into ps_category(id_category, id_parent) values('', 2)");
echo "après la req";
comme ça, on saura si on rentre dans le if et si la requete s'est exécutée ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 15:44
19 mars 2013 à 15:44
Non mon if n'est plus commenté, j'ai rajouté les echo il ne se passe absolument rien je reste devant une page blanche. Soit j'ai fait une grosse erreur, soit c'est un truc complètement idiot qui m'a échappé.
le fait de ne pas avoir les messages venant des "echo" prouve qu'on ne rentre pas dans le if.
Cela veut dire que $champ1 != "Sacs en Papier"
Allons voir maintenant que vaut $champ1. Pour cela, faisons un echo de ce dernier :
echo "la valeur de la variable $champ1 est : ".$champ1."<br/>" ;
à mettre avant le if
Cela veut dire que $champ1 != "Sacs en Papier"
Allons voir maintenant que vaut $champ1. Pour cela, faisons un echo de ce dernier :
echo "la valeur de la variable $champ1 est : ".$champ1."<br/>" ;
à mettre avant le if
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 15:56
19 mars 2013 à 15:56
j'obtient ceci :
La valeur de la variable est : "Sacs en Papier"
La valeur de la variable est : "Sacs en Papier"
La valeur de la variable est : "Sacs en Plastique"
La valeur de la variable est : "Sacs PP Tissés"
La valeur de la variable est : "Sacs en Papier"
La valeur de la variable est : "Sacs en Papier"
La valeur de la variable est : "Sacs en Plastique"
La valeur de la variable est : "Sacs PP Tissés"
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 16:09
19 mars 2013 à 16:09
Merci beaucoup =) ça marche à ce que je vois mais il n'y aurait pas un moyen de faire l'insert une seule fois? Car si je laisse comme ceci il me le fait 2 fois. =S
c'est normal, vu qu'il le trouve 2 fois dans la texte. Sinon, faudrait tester l'existence dans la base avant l'insert. si Sacs en Papier n'existe pas en base alors insert into...
une question me taraude ^^ : pourquoi programmer l'insert d'un fichier csv ? tu peux pas importer directement ce fichier en base de données?
une question me taraude ^^ : pourquoi programmer l'insert d'un fichier csv ? tu peux pas importer directement ce fichier en base de données?
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 16:54
19 mars 2013 à 16:54
c'est mon maître de stage qui m'a dit de créer ce programme afin que je puisse apprendre de nouvelles compétences, c'est intéressant mais tellement chiant à mettre en place surtout que la base de données touche à la plate-forme Prestashop
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 15:58
19 mars 2013 à 15:58
Un problème de guillemets?
Salut,
Non ce n'est pas un problème de guillemet.
Dans ton premier post, ta condition teste si champ1 est égal à "Sac en plastique" (au singulier), or ton champ1 n'est jamais égal à cette valeur :
"Sacs en Papier" != "Sac en Papier"
"Sacs en Plastique" != "Sac en Papier"
"Sacs PP Tissés" != "Sac en Papier"
Modifie ta condition comme ceci :
Ta requête devrait alors être exécutée.
Non ce n'est pas un problème de guillemet.
Dans ton premier post, ta condition teste si champ1 est égal à "Sac en plastique" (au singulier), or ton champ1 n'est jamais égal à cette valeur :
"Sacs en Papier" != "Sac en Papier"
"Sacs en Plastique" != "Sac en Papier"
"Sacs PP Tissés" != "Sac en Papier"
Modifie ta condition comme ceci :
if ($champ1 == "Sacs en Papier") {
Ta requête devrait alors être exécutée.
merevinh
Messages postés
30
Date d'inscription
mardi 5 juin 2012
Statut
Membre
Dernière intervention
6 octobre 2014
7
19 mars 2013 à 16:12
19 mars 2013 à 16:12
oui tidjool ça rentre dans ma requête maintenant mais je veux juste savoir une dernière chose comment je pourrais faire pour que cette requête ne se fasse qu'un seule fois?
19 mars 2013 à 15:04
if ( $champ1 === "sac en papier" ) { etc...