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 :

Problème d'insertion de données dans table d'associations [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut Problème d'insertion de données dans table d'associations
    Bonjourà tous.
    Voila j'ai 2 tables et une associations comme suit:
    depart (#num_dep,date_envoi,contenu_dep)
    personnes(#num_pers,nom_pers,pre_pers)
    envoyer(#num_dep,#num_pers)

    Je souhaiterais enregistrer de nouveaux departs (la liste des personnes est deja préenregistré dans une liste deroulante), et que la correspondance entre le num_dep de l'association envoyer et le num_dep de la table depart se fasse automatiquement. Merci de m'aider car moi je galere.

  2. #2
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    ta question est un peu vague...
    tu bloques ou? logique code? sais tu exactement ce que tu veux faire?
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    je bloque.
    Ce que je veu:
    j'ai un formulaire pour depart avec la liste deroulante des personnes et mon probleme c'est que lorsque je valide le num_dep de envoyer reste à zero alors que num_pers a sa valeur. Comment faire pour que le num_dep d'envoyer recupere la valeur correspondante au num_dep de la table depart .

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Points : 125
    Points
    125
    Par défaut
    Montre nous ton code, car là c'est dur de bien comprendre et pouvoir ensuite t'aider

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Voici le formulaire
    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
    <form name="ajout_dep" method="post" action="valider_dep.php">
    <td><input type=hidden name="num_dep"></td>
    <td class="label">Date&#58;</td>
    <td><input type="text" id="id_ddn" name="date_envoi" size="20" maxlength="10" tabindex="1"/>
    <?php saisie_calendrier&#40;"ajout_dep","date_envoi","id_ddn"&#41;;?></td>
    <td class="label">recommande&#58;</td>
    <td><input type="radio" name="recommande" value="oui">oui
    <input type="radio" name="recommande" value="non">non<br>
    </td><br>
    <td class="label">Contenu&#58;</td>
    <td><textarea name="contenu_dep" cols=30  rows=4></textarea></td><br>
     
     
    <td class="label">Personnes</td>
    <td><select name="num_pers">
    <?php
    $req_pers=mysql_query&#40;"SELECT *
    					   FROM personnes_tiers;"&#41;;
    
    while &#40;$pers = mysql_fetch_array&#40;$req_pers&#41;&#41;
    
    &#123;
    	echo"<option value=".$pers&#91;'num_pers'&#93;.">".$pers&#91;'nom_pers'&#93;." ".$pers&#91;'pre_pers'&#93;."</option>";
    &#125;
    ?>
    </select></td>
    <br><input type="submit" name="valider" value="ajouter">
    </form>
    voici le code pour inserer les données dans la base mysql
    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
     
    <?php
    include&#40;"config.inc.php"&#41;;
    $date_envoi=$_POST&#91;"date_envoi"&#93;;
    $recommande=$_POST&#91;"recommande"&#93;;
    $contenu_dep=$_POST&#91;"contenu_dep"&#93;;
    $num_chd=$_POST&#91;"num_chd"&#93;;
    $num_pers=$_POST&#91;"num_pers"&#93;;
    $num_dep=$_POST&#91;"num_dep"&#93;;
     
     
    $sqlenv="INSERT INTO envoyer &#40;num_dep,num_pers&#41;
    VALUES &#40;'$num_dep','$num_pers'&#41;;";
    mysql_query&#40;$sqlenv&#41;;
     
    $sqldep="INSERT INTO depart &#40;num_dep,date_envoi,recommande,contenu_dep,num_chd&#41;
    VALUES &#40;'','$date_envoi','$recommande','$contenu_dep','$num_chd'&#41;;";
    mysql_query&#40;$sqldep&#41;;
    ?>
    Avec ce code mon num_dep qui est dans envoyer reste à zero et donc ne correspond a la valeur de num_dep qui est dans depart.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Dans ton formulaire, tu ne donnes pas de valeur à ton champ hidden num_dep.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    num_dep est en autoincrement dans la base de données faut faire comment pour lui assigner la valeur avec du sql?

  8. #8
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sqlenv="INSERT INTO envoyer &#40;num_dep,num_pers&#41;
    VALUES &#40;'','$num_pers'&#41;;";
    mysql_query&#40;$sqlenv&#41;;
    là c'est en auto-increment num_dep prend +1 si le champ est paramétré pour l'auto-increment

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Ben42
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sqlenv="INSERT INTO envoyer &#40;num_dep,num_pers&#41;
    VALUES &#40;'','$num_pers'&#41;;";
    mysql_query&#40;$sqlenv&#41;;
    là c'est en auto-increment num_dep prend +1
    Et en Ajax ??


    Si tu tiens vraiment à récupérer ce numéro tu peux faire un : select max(num_dep) from table ...
    Mais la solution de Ben est la bonne

  10. #10
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 181
    Points
    181
    Par défaut
    pour une fois qu'on est d'accord tintin

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Le num_dep qui est dans envoyer n'est pas en auto-increment c'est celui qui est dans depart qui l'est.Je veu que celui le num_dep d'envoyer recupere ou corresponde a celui qui est dans depart

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Points : 47
    Points
    47
    Par défaut
    Ton problème vient du fait que tu n'as pas de value dans ton input ...

    Donc dans ton input tu y mets la valeur que tu veux (celle de ton num_dep en l'occurrence )... car si t'y mets rien il pourra rien te récupérer c'est normal ....

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Il faut donc que tu inverses tes requêtes :
    1) Tu INSERT dans depart.
    2) Tu récupères l'id (num_dep) grâce à mysql_insert_id().
    3) Tu INSERT dans envoyer, avec cette dernière valeur récupérée.
    Sinon, comment veux-tu insérer un id d'un enregistrement qui n'a pas encore eu lieu ?
    Attention : lis la doc sur mysql_insert_id() pour éviter les risques de parasitage.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    mon probleme est resolu , merci beaucoup a tous

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

Discussions similaires

  1. Problème d'insertion de données dans ma table
    Par flilou dans le forum Zend_Db
    Réponses: 10
    Dernier message: 05/10/2011, 18h23
  2. [MySQL] problème d'insertion de données dans 3 tables
    Par goldray dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/04/2011, 21h07
  3. [Oracle] problème d'insertion de données dans une table sous oracle
    Par Zombiman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2009, 15h58
  4. problème d'insertion de données dans table
    Par loic20h28 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 31/01/2008, 18h26
  5. [MySQL] Problème insertion de données dans table Mysql
    Par Malcolm78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/10/2007, 18h25

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