Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 07/06/2006, 11h50   #1
Membre du Club
 
Inscription : septembre 2002
Messages : 238
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 238
Points : 43
Points : 43
Envoyer un message via MSN à kaygee Envoyer un message via Yahoo à kaygee
Par défaut probleme de code avec mysql

Salut, j'ai un gros probleme de code et je ne comprend rien du tout

1) il encode bien les question sans problème
2) il n'encode qu'une seul de mes questions et la je ne comprend pas

j'ai remarqué que dans mysql ma table reponse avec un autoindex de 255 pour le suivant et mon enregistrement prend cette valeur

pourriez vous m'aider je deviens fou


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
 
<?PHP
	IF (isset($_POST['serie']))
	{
		$requete_addquestion = "INSERT INTO question(QuestID,SerieID,QuestQuestion) VALUES('','".$_POST['serie']."','".$_POST['question']."')";
		$resultat_addquestion = mysql_query($requete_addquestion);
		$breponse1=0;
		$breponse2=0;
		$breponse3=0;
		$breponse4=0;
 
		switch($_POST['reponseOK'])
		{
			case 1 :
				$breponse1=1;
 
				break;
			case 2 :
				$breponse2=1;
				break;
			case 3 :
				$breponse3=1;
				break;
			case 4 :
				$breponse4=1;
				break;
		}
		$requete_question="SELECT QuestID From question";
		$resultat_question=mysql_query($requete_question);
		$IDquestion=0;
		while($question=mysql_fetch_array($resultat_question))
		{
			$IDquestion = $question['QuestID'];
		}
 
 
 
		$requete_addreponse1 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".$_POST['reponse1']."','".$breponse1."')";
		$resultat_addreponse1 = mysql_query($requete_addreponse1);
 
		$requete_addreponse2 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".$_POST['reponse2']."','".$breponse2."')";
		$resultat_addreponse2 = mysql_query($requete_addreponse2);
 
		$requete_addreponse3 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".$_POST['reponse3']."','".$breponse3."')";
		$resultat_addreponse3 = mysql_query($requete_addreponse3);
 
		$requete_addreponse4 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".$_POST['reponse4']."','".$breponse4."')";
		$resultat_addreponse4 = mysql_query($requete_addreponse4);
 
 
 
	}
?>
kaygee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 14h25   #2
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
Code :
1
2
3
4
5
6
7
8
 
$requete_question="SELECT QuestID From question";
$resultat_question=mysql_query($requete_question);
$IDquestion=0;
while($question=mysql_fetch_array($resultat_question))
{
	$IDquestion = $question['QuestID'];
}
tu peux supprimer ça pour reecuperer le dernier identifiant; il existe la fonction mysql_insert_id();
ton code devient

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
<?PHP
if (isset($_POST['serie']) && isset($_POST['reponse1']) && isset($_POST['reponse2']) && isset($_POST['reponse3']) && isset($_POST['reponse4']) && isset($_POST['question']) && isset($_POST['reponseOK']))
{
	$requete_addquestion = "INSERT INTO question(QuestID,SerieID,QuestQuestion) VALUES('','".addslashes($_POST['serie'])."','".addslashes($_POST['question'])."')";
	$resultat_addquestion = mysql_query($requete_addquestion);
	$IDquestion=mysql_insert_id();
	$breponse1=0;
	$breponse2=0;
	$breponse3=0;
	$breponse4=0;
		
	switch($_POST['reponseOK'])
	{
		case 1 :$breponse1=1;break;
		case 2 :$breponse2=1;break;
		case 3 :$breponse3=1;break;
		case 4 :$breponse4=1;break;
	}
		
	$requete_addreponse1 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".addslashes($_POST['reponse1'])."','".$breponse1."')";
	$resultat_addreponse1 = mysql_query($requete_addreponse1);
		
	$requete_addreponse2 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".addslashes($_POST['reponse2'])."','".$breponse2."')";
	$resultat_addreponse2 = mysql_query($requete_addreponse2);
		
	$requete_addreponse3 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".addslashes($_POST['reponse3'])."','".$breponse3."')";
	$resultat_addreponse3 = mysql_query($requete_addreponse3);
		
	$requete_addreponse4 = "INSERT INTO reponse(RepID,QuestID,RepReponse, RepStatut) VALUES('', '".$IDquestion."' ,'".addslashes($_POST['reponse4'])."','".$breponse4."')";
	$resultat_addreponse4 = mysql_query($requete_addreponse4);
}
?>
es tu sur de lexistence de tes $_POST
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 14h37   #3
Membre régulier
 
Inscription : mai 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 60
Points : 73
Points : 73
Envoyer un message via Skype™ à Tiois
Si tu as des caractères double quotes (") ou des quotes (') dans tes réponses ou questions, ca peut fucker tes requetes SQL. Dans tes requêtes SQL, ajoute des slash sur tes variables POST comme suit:

ex: "INSERT INTO reponse(ID,Question) VALUES ('','". addslashes($_POST["question"])."')";

C'est peut-être la raison que ca n'insère qu'une seule réponse !
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 14h46   #4
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
+1 (jai modifié mon code pour mettre les addslashes)
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h04   #5
Membre régulier
 
Inscription : mai 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 60
Points : 73
Points : 73
Envoyer un message via Skype™ à Tiois
et ça a réglé ton problème ?
Tiois 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 20h04.


 
 
 
 
Partenaires

Hébergement Web