Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2006, 12h53   #1
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Par défaut [Conception] Un switch bloque une instruction INSERT INTO

Bonjour,

J'ai un drôle de problème : j'ai un switch et plus bas une requête d'insertion. Dès que j'enlève le switch ça fonctionne, mais si je le laisse, car j'en ai besoin, alors ça n'insère plus rien sans pour autant donner un message d'erreur.

Voilà le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 switch($discussion)
{
case 1 : 
$categorie='L\'actualité'; 
$urlCategorie='actualite';
 
break;
 
case 2 : 
$categorie='Arts & Culture '; 
$urlCategorie='arts-culture';
 
break;
 
case 3 : 
$categorie='Formation';
$urlCategorie='formation';
 
break;
 
case 4 : 
$balise='Personnalités';
$urlCategorie='personnalites';
 
 
break;
 
case 5 : 
$categorie='Politique';
$urlCategorie='politique';
 
 
break;
 
case 6 : 
$categorie='Les relations humaines';
$urlCategorie='relations-humaines';
 
 
break;
 
case 7 : 
$categorie='Société';
$urlCategorie='societe';
 
 
break;
 
case 8 : 
$categorie='Spiritualité';
$urlCategorie='spiritualite';
 
break;
 
 
case "9" : 
$categorie='Nouveaux Membres';
$urlCategorie='nouveaux-membres';
 
break;
 
case 10 : 
$categorie='café';
$urlCategorie='cafe';
 
break;
}
$insert="INSERT INTO `forum` (`ip`,`categorie`,`codeCategorie`,`urlCategorie`,`idMembre`,`contenu`,`signature`,`date`,`pseudo`,`urlSite`,`titre`) 
VALUES (
'$ip','$categorie','$discussion','$urlCategorie','$idMembre','$contenu','$signature','$date','$pseudo','$urlSite','$titre'
)";
Le switch fonctionne bien ailleurs dans d'autres fichiers, mais ici il gène je ne comprend pas du tout pourquoi.
De même la requête fonctionne bien si on enlève le switch.

Merci pour votre aide.
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 13h56   #2
Membre régulier
 
Avatar de vador972
 
Inscription : août 2006
Messages : 71
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2006
Messages : 71
Points : 73
Points : 73
Bonjour,
Peut-être que le problème vient du fait que une ou plusieurs variables n'est/ ne soient pas instanciée du fait du switch...
vador972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 14h04   #3
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Affiches tu ta requête avant de l'envoyer dans la base ?
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 16h04   #4
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Salut
Peut-être rien à voir, mais pourquoi affiches-tu la 9 entre quotes ?

__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 17h27   #5
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Salut, merci de vos réponses

Citation:
Peut-être rien à voir, mais pourquoi affiches-tu la 9 entre quotes ?
Bien vu, j'ai effectivement corrigé le truc, mais en effet, ça n'avait rien à voir...

Citation:
Peut-être que le problème vient du fait que une ou plusieurs variables n'est/ ne soient pas instanciée du fait du switch...
Non ça ne se peut pas, j'ai bien vérifié, mais le $discussion se trouve bien au dessus.

Pour guitou, non je ne l'affiche pas, mais comme je l'ai dit la requête fonctionne bien dès que je vire le switch.
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 17h40   #6
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
Citation:
Pour guitou, non je ne l'affiche pas, mais comme je l'ai dit la requête fonctionne bien dès que je vire le switch.
affiche la quand meme pour voir si tout est ok, on sait jamais
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 17h47   #7
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Je vois que dans ta requête, tu attribues entr'autres, la variable $discussion à ton champs codeCategorie.
Peux-être serait-ce utile de rappeller la variable $discussion dans les différents éléments de ton switch ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch($discussion)
{
case 1 : 
$categorie='L\'actualité'; 
$urlCategorie='actualite';
$discussion=’1’;
 
break;
 
case 2 : 
$categorie='Arts & Culture '; 
$urlCategorie='arts-culture';
$discussion=’2’;
 
break;
 
etc.......
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 18h13   #8
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Bon j'ai rien compris donc j'y suis arrivé autrement : j'ai simplement récupéré les champs qui m'intéressent via des inputs hidden et je l'ai ai fait passé d'un formulaire à l'autre jusqu'à ce qu'ils soient inserrés dans la base.

ça fonctionne bien comme ça.

Merci pour vos réponses ! (j'approfondi pas trop les suggestions, l'important c'est que ça fonctionne pas vrai ? ;-) )

**edit**
Quoique la solution d'Alain m'intrigue, je ne vois pas trop l'utilité de reconfirmer $discussion dans le switch, surtout que je ne m'en sers plus après.
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 18h23   #9
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par JackBeauregard
Quoi que la solution d'Alain m'intrigue, je ne vois pas trop l'utilité de reconfirmer $discussion dans le switch, surtout que je ne m'en sers plus après.
Ben tu en as besoin dans ta requête non ?

Code :
1
2
3
4
5
6
7


$insert="INSERT INTO `forum` (`ip`,`categorie`,`codeCategorie`,`urlCategorie`,`idMembre`,`contenu`,`signature`,`date`,`pseudo`,`urlSite`,`titre`) 
VALUES (
'$ip','$categorie','$discussion','$urlCategorie','$idMembre','$contenu','$signature','$date','$pseudo','$urlSite','$titre'
)";
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 22h24   #10
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Oui en effet, mais pourquoi veux-tu que la valeur de $discussion change durant le switch ? C'est ça que je ne pige pas dans ton exemple.
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 23h35   #11
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
C'était une simple suggestion et en partant du principe que tu attribuais un codeCategorie différent à chaques entrées dans ta table.
Soit $discussion = 1, ou2, ou 3 etc...
Mais si tu as trouvé la solution, celà n'a plus dintérêt.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h10.


 
 
 
 
Partenaires

Hébergement Web