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/06/2006, 14h02   #1
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
Par défaut [Conception] double ajout dans la base

bonjour,
j'ai fait une fonction qui controle la saisie d'un formulaire et qui insère si tout les champs sont renseigné
le problème c'est que la requete insère deux fois les valeurs dans la base de données
l'identifiant est un auto increment
voici le code de ma fonction
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
<?php
/* on appel la fonction de connexion à la base de données */
include "..\..\..\ConnexionBdd.php";
 
/* on récupère les données saisies dans le formulaire */
$gpad=mysql_real_escape_string(trim($_POST['GpAD']));
$theme=mysql_real_escape_string(trim($_POST['Theme']));
$titre=mysql_real_escape_string(trim($_POST['Titre']));
$resp=mysql_real_escape_string(trim($_POST['resp']));
$desc=mysql_real_escape_string(trim($_POST['desc']));
$avanc=mysql_real_escape_string(trim($_POST['avanc']));
 
/* on vérifie si les données existent */
if (empty($gpad) || empty($theme) || empty($titre) || empty($resp) || empty($desc) || empty($avanc) ) {
	die ("ERREUR : Un champ n'a pas été saisi!");
}else{
	$ReqInser="Insert into actiond (ID_GPAD, ID_THEME, TITRE_AD, RESPONSABLE_AD, AVANCEMENT, COMMENTAIRE_AD) values	($gpad, $theme, '$titre', '$resp', '$avanc', '$desc')";
	mysql_query($ReqInser);
}
 
/* on ferme la connexion à la base de données */
include "..\..\..\FermerConnexionBdd.php";
 
/* on rediriger vers la page initiale */
header("Location: ..\AjoutAD.php?requete=success");
?>
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 16h17   #2
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
essaies ce code là, en supposant que ton formulaire a un bouton de type="Submit" avec value="submit"

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
 
<?php
if ($_POST["submit"]) {
/* on appel la fonction de connexion à la base de données */
include "..\..\..\ConnexionBdd.php";
 
/* on récupère les données saisies dans le formulaire */
$gpad=mysql_real_escape_string(trim($_POST['GpAD']));
$theme=mysql_real_escape_string(trim($_POST['Theme']));
$titre=mysql_real_escape_string(trim($_POST['Titre']));
$resp=mysql_real_escape_string(trim($_POST['resp']));
$desc=mysql_real_escape_string(trim($_POST['desc']));
$avanc=mysql_real_escape_string(trim($_POST['avanc']));
 
/* on vérifie si les données existent */
if (empty($gpad) || empty($theme) || empty($titre) || empty($resp) || empty($desc) || empty($avanc) ) {
	die ("ERREUR : Un champ n'a pas été saisi!");
}else{
	$ReqInser="Insert into actiond (ID_GPAD, ID_THEME, TITRE_AD, RESPONSABLE_AD, AVANCEMENT, COMMENTAIRE_AD) values	($gpad, $theme, '$titre', '$resp', '$avanc', '$desc')";
	mysql_query($ReqInser);
}
 
/* on ferme la connexion à la base de données */
include "..\..\..\FermerConnexionBdd.php";
 
/* on rediriger vers la page initiale */
header("Location: ..\AjoutAD.php?requete=success");
}
?>
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 16h31   #3
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
Par défaut double insertion dans la bdd

ca fonctionne mais pourquoi dans ce cas dans mes autres formulaires je n'ai po ce problème de double insertion alors que j'ai fait un copié de la fonction et que j'ai changé la requete et la récupération des variables?
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 16h37   #4
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
bin c'est que lorsque tu rediriges sur la meme page que tu valides ton formulaire, tu repasses encore dans ton code d'insertion... donc il faut toujours vérifier que la page a recu un POST pour insérer, sinon ca va passer tout droit sur le code d'insertion.
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2006, 09h25   #5
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
Par défaut double insertion dans la base

merci maintenant je controlerai que ca vien bien du formulaire
cell 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 00h09.


 
 
 
 
Partenaires

Hébergement Web