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 :

Modification de 2 tables mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 44
    Par défaut Modification de 2 tables mysql
    Bonjour,

    je souhaite modifier 2 tables à partir d'un formulaire et notamment un select pour le moment j'arrive à en modifier qu'une car je n'arrive pas à récupérer un élément (id_emprunt).
    Voici le code qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <select name="id_livre">
    	<?php
    		$bdd = new PDO('mysql:host=hostingmysql324.amen.fr;dbname=biblio_ram', '', '');
    		$resultat=$bdd->query("SELECT * FROM livres WHERE li_date_retour = '0000-00-00'");
    		$resultat->setFetchMode(PDO::FETCH_ASSOC);
     
    		foreach ($resultat as $data){
    			echo '<option value="' . $data['id_livre'] . '">' . $data['li_titre'] . '</option>';
    		}
    	$resultat->closeCursor();
    	?>
    </select></td>
    En fait je récupère l' "id_livre" dans la table livres et je souhaiterais récupérer l'id_emprunt de la table emprunt à partir de ce select...

    Ma table emprunt possède le champ id_livre qui est la clé primaire de la table livres.

    En fait j'arrive à récupérer soit l'un soit l'autre mais pas les 2 en même temps....

    Je vous remercie pour votre aide et je suis à votre disposition pour tout complément d'informations.

    Cordialement

  2. #2
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    Bonjour Yole9
    personnellement, je ne comprend pas bien la question:
    Tu veux modifier deux tables mais je ne vois qu'un select sur une table livres.
    Pour aller plus loin, j'ai deux suggestions ?
    Reformule la question de manière précise et donne-nous la structure des tables livres et emprunt.
    Alors peut-être pourra-t-on t'aider.

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 44
    Par défaut
    Emprunt:
    id_emprunt ad_id id_livre depart_emprunt retour_emprunt prevu_emprunt
    9 1 1 2017-10-09 0000-00-00 0000-00-00
    6 1 2 2017-10-10 2017-10-28 0000-00-00


    livres
    id_livre li_titre li_auteur li_theme li_date li_date_depart li_date_retour
    1 La discipline positive NELSEN Jane Soutien à la parentalité 2017-10-09 2017-10-09 0000-00-00
    2 Psychopathologie du nourrisson et du jeune enfant MAZET Philippe Professionnalisation 2017-10-09 2017-10-10 2017-10-29

    Si la date de retour est égale à 0 le livre est prêter (que ça soit dans la table livres ou emprunt) donc je sélectionne les dates nulles et j'affiche le titre du livre quand j'ai sélectionné un livre je veux modifier la date de retour dans les 2 tables

    J'espère être assez clair

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    En fait je récupère l' "id_livre" dans la table livres et je souhaiterais récupérer l'id_emprunt de la table emprunt à partir de ce select...

    Ma table emprunt possède le champ id_livre qui est la clé primaire de la table livres.

    En fait j'arrive à récupérer soit l'un soit l'autre mais pas les 2 en même temps....
    les 2 tables sont associées : la table emprunt contient la clé étrangère( clé issue de la table livres), dans ce cas on peut à l'aide d'une requête avec jointure(mot clé JOIN ) ressortir les informations de ces tables en même temps:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      $resultat=$bdd->query("SELECT li.*, e.id_emprunt, e.depart_emprunt, e.retour_emprunt FROM livres li  JOIN emprunt e WHERE li.li_date_retour = '0000-00-00'");


    Si la date de retour est égale à 0 le livre est prêter (que ça soit dans la table livres ou emprunt) donc je sélectionne les dates nulles et j'affiche le titre du livre quand j'ai sélectionné un livre je veux modifier la date de retour dans les 2 tables
    l'idée de mettre à jour la date de retour à chaque retour d'un livre fait perdre l'historique des emprunts d'un livre.Pour garder l'historique de tous les emprunts il est possible de sortir la date_retour de la table des emprunts pour pouvoir créer une table des "retour" composée de id_retour, id_emprunt, date_retour.Dès lors qu'il y a un retour tu insères que la table dans la table des "retour".

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 44
    Par défaut
    Oui je sais tout ça mais dans ma conception je cherche à récupérer l'id_emprunt en plus de l'id_livre pour ensuite pouvoir modifier la table emprunt.
    J'avais fait le join sur les 2 tables mais ça m'affiche les titres en double.

  6. #6
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 44
    Par défaut
    J'ai tenu compte de vos remarques et donc je récupère l'id_livre pour modifier la tables livres et ça fonctionne bien:

    je récupère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                    <select name="id_livre">
                                        <?php
                                            $bdd = new PDO('mysql:host=hostingmysql324.amen.fr;dbname=biblio_ram', '', '');
                                            $resultat=$bdd->query("SELECT * FROM livres WHERE li_date_retour = '0000-00-00'");
                                            $resultat->setFetchMode(PDO::FETCH_ASSOC);
     
                                            foreach ($resultat as $data){
                                                echo '<option value="' . $data['id_livre'] . '">' . $data['li_titre'] . '</option>';
                                            }
                                        $resultat->closeCursor();
                                        ?>
                    </select></td>
    Puis je modifie:

    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
      //nom_livre:
      $livre = $_POST["id_livre"] ;
      //date_retour:
      $retour = $_POST["date_retour"] ;
     
     
     
      //création de la requête SQL:
      $sql = "UPDATE livres
                SET  
     
                li_date_retour = '$retour'
     
     
               WHERE id_livre = '$livre'" ;
    Tout fonctionne très bien maintenant je souhaite garder une trace et donc j’insère dans la table emprunt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     //récupération des valeurs des champs:
     //nom_livre:
      $livre = $_POST["id_livre"] ;
      //date_retour:
      $retour = $_POST["date_retour"] ;
     
     
      //création de la requête SQL:
      $sql = "INSERT INTO emprunt (ad_id, id_livre, depart_emprunt, retour_emprunt) VALUES ('', '$livre', '', '$retour')";
    Et là j'insère bien mon id_livre puis ma date de retour mais comment puis je récupérer ad_id ainsi que la date départ de la table livres

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

Discussions similaires

  1. [MySQL-5.6] Migration / modification ENGINE (moteur) Table MYSQL
    Par Original1992 dans le forum Administration
    Réponses: 0
    Dernier message: 06/03/2015, 09h01
  2. [MySQL] modification d'une table mysql a partir d'un formulaire
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/07/2011, 08h13
  3. [MySQL] modification données d'une table MySql
    Par ludobabs dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/04/2008, 17h03
  4. [MySQL] Modification des tables MySQL
    Par Medmidou dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/08/2007, 14h19
  5. Réponses: 11
    Dernier message: 25/07/2006, 21h46

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