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

Langage PHP Discussion :

Recupération de l'ID pour le mettre dans une autre table


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut Recupération de l'ID pour le mettre dans une autre table
    Bonjour,
    j'ai un problème et j’avoue ne pas trop savoir comment le réparé et surtout le détecté
    Je m'explique :
    Plusieurs table son agrémenté avec un formulaire :
    Utilisateur / Photo / Annonce :

    - Je créé mon utilisateur
    - Je récupère l'ID utilisateur précédemment créer et je la met dans la table photo.
    - Je créé mon annonce en y mettant les ID Utilisateur et Photo précédement créé.

    Le problème:
    - A partir du moment ou un utilisateur déjà créer met une annonce (une autre page qui fonctionne bien elle) ce code ne me met pas la bonne ID Utilisateurs dans l'annonce (+1 dans l'ID dans l'exemple en fonction du nombre d'annonces mises par des membres).
    Le code fonctionne très bien si seulement les annonces sont ajoutées par des nouveaux utilisateurs.

    Voici mon bou de code :
    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
    //Ajoute l'utilisateur dans BDD.
    $res = $cnx->prepare('
    		INSERT INTO tb_utilisateurs(id_utilisateurs, pseudo, email, pass, id_dptsvilles) values ("", :pseudo, :email, :pass, :id_dptsvilles)');
     
    $res->execute( array(':pseudo' => $pseudo, ':email' => $email, ':id_dptsvilles' => $id_dptsvilles, ':pass' => md5($pass)) );	
     
     
    $id_utilisateurs=$cnx->lastInsertId();
     
    move_uploaded_file($_FILES['file']['tmp_name'], "uploads/$id_utilisateurs$ext");
     
     
     //Ajoute la photo dans BDD.
    $res = $cnx->prepare("INSERT INTO tb_photos (id_photo, file)  VALUES ('','$id_utilisateurs$ext')"); 
    $res->execute();
     
    $id_utilisateurs=$cnx->lastInsertId();
    $id_photo=$cnx->lastInsertId();
     
             {            
     
     //Ajoute annonce dans BDD.		 
    $res = $cnx->prepare("INSERT INTO tb_annonces (id_annonces, titre, description, prix, date, id_utilisateurs, idcategories, id_photo) VALUES('','$titre','$description','$prix', CURDATE(), '$id_utilisateurs','$idcategories','$id_photo')");
    $res->execute();
    $id_annonces=$cnx->lastInsertId();
     
            echo 'Votre annonce à bien été ajoutée.<p> Celle-ci est visible immédiatement sur le site et elle sera visible durant 31 jours.';

    J'espere que j'ai ete clair (pas trop sur de cela) en esperant que le code et que ce que je souhaite faire vous aide et je précise que mon code est fonctionnel hormis ce bug mais pas fini (niveau sécurité).

    Merci à vous et je souhaites une bonne Année aux lecteurs de ce sujet

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bonne année,
    il faudrait sans doute revoir la CONCEPTION et la LOGIQUE.

    A partir du moment où tu fais "INSERT INTO tb_utilisateurs....", tu crées un NOUVEL utilisateur.
    Il n'y a donc pas de mystère.

    Les utilisateur déjà inscrits doivent-ils se connecter (login/pass) ?
    Si oui, il faut alors enregistrer leur id dans une SESSION (par exemple).

  3. #3
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Bonjour et merci,

    C'est bien ce que j'ai fait sur mon fichier Ajout annonce pour les utilisateurs connecté et qui fonctionne bien, la c'est l’ajout pour les nouveaux utilisateurs qui me pose problème.

    En fait il faut que je récupére l'ID fait pour l'utilisateur, je pensais que lastInsertId etait bon mais apparemment non pff, pourtant pour la photo cela fonctionne bien.

    Edition1: en faite mais rien de sur j'ai l'impression que c'est a cause du second "$id_utilisateurs=$cnx->lastInsertId();" Ligne 17 qui posais problème.

    Edition2: Apparement c'est bien cela le fait qui le fasse deux fois il me rajoutais 1 de plus pfffff, j'attend pour le Resolu

  4. #4
    Invité
    Invité(e)
    Par défaut
    Sépare l'ajout d'un utilisateur et l'ajout d'annonce/photos.

    1/ Un nouvel utilisateur s'enregistre
    2/ une fois enregistré, il devient.... un "utilisateur enregistré" !
    3/ il se connecte (ou est connecté automatiquement)
    3/ et ton 1er script d'ajout d'annonce/photos (pour "utilisateur enregistré") entre en piste.

  5. #5
    Nouveau membre du Club Avatar de tyler94
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 25
    Points
    25
    Par défaut
    Merci à toi , en faite si j'ai décidé de faire comme cela (avant c’était comme tu dit) c'est pour que ce soit plus simple et plus rapide pour les utilisateurs.

    Mais merci quand même

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/11/2010, 13h03
  2. Réponses: 2
    Dernier message: 26/05/2010, 09h32
  3. Réponses: 11
    Dernier message: 22/06/2009, 09h58
  4. Récupèrer champ d'une table pour mettre dans une autre table
    Par Invité(e) dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 31/03/2008, 22h59
  5. [MySQL] récupérer l'id créé et le mettre dans une autre table
    Par boubourse92 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/09/2007, 16h17

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