IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] double ajout dans la base


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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");
    ?>

  2. #2
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 66
    Points
    66
    Par défaut
    essaies ce code là, en supposant que ton formulaire a un bouton de type="Submit" avec value="submit"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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");
    }
    ?>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    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?

  4. #4
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 66
    Points
    66
    Par défaut
    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.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut double insertion dans la base
    merci maintenant je controlerai que ca vien bien du formulaire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/02/2006, 11h52
  2. [Conception] Code php dans une base de donnée
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/09/2005, 10h58
  3. Ajout Dans une base de données
    Par belabyad dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2005, 13h25
  4. pb d'ajout dans une base de donnée
    Par loic.440 dans le forum ASP
    Réponses: 15
    Dernier message: 17/01/2005, 10h06
  5. Ajout dans une base
    Par semaj_james dans le forum Bases de données
    Réponses: 3
    Dernier message: 01/06/2004, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo