Modification de plusieurs tables
labourette
Messages postés
657
Date d'inscription
Statut
Membre
Dernière intervention
-
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai recréé ce post pour vous expliquer un autre soucis concernant mes tables.
Je souhaiterai pouvoir afficher mes valeurs issus de plusieurs tables afin de pouvoir les modifier.
Si j'ai qu'une table tout fonctionne bien mais avec plusieurs tables c'est le hic.
Voici mes tables concernées
Voici ma requète pour sélectionner mes valeurs à afficher
Et pour terminer voici mon lien qui affiche mon formulaire
Il y a seulement les valeurs de la table tb_adherent qui s'affiche bien dans le formulaire et que je peux modifier.
Pouvez-vous me donner un petit coup de main s'ils vous plait ça serai très gentil je galère depuis bien longtemps.
Je pense que ça vient surement de la requète et de mon lien.
Un très grand merci
J'ai recréé ce post pour vous expliquer un autre soucis concernant mes tables.
Je souhaiterai pouvoir afficher mes valeurs issus de plusieurs tables afin de pouvoir les modifier.
Si j'ai qu'une table tout fonctionne bien mais avec plusieurs tables c'est le hic.
Voici mes tables concernées
case 'modifier': $sql = "UPDATE tb_adherent SET civilite=:civilite, nom=:nom, prenom=:prenom, adresse_mail=:adresse_mail, date_naissance=:date_naissance, telephone_fixe=:telephone_fixe, telephone_mobile=:telephone_mobile, adresse=:adresse, lieu_dit=:lieu_dit, code_postal=:code_postal, ville=:ville, login=:login, pass=:pass WHERE id_adherent=:id_adherent"; $requete = $bdd->prepare($sql); $requete->bindParam(':id_adherent', $PARAM['ID_ADHERENT']); $requete->bindParam(':civilite', $PARAM['CIVILITE']); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':adresse_mail', $PARAM['ADRESSE_MAIL']); $requete->bindParam(':date_naissance', $PARAM['DATE_NAISSANCE']); $requete->bindParam(':telephone_fixe', $PARAM['TELEPHONE_FIXE']); $requete->bindParam(':telephone_mobile', $PARAM['TELEPHONE_MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':login', $PARAM['LOGIN']); $requete->bindParam(':pass', $PARAM['PASS']); $requete->execute(); $sql = "UPDATE tb_gestion_admin SET rid_adherent=:rid_adherent, rid_categorie_statut=:rid_categorie_statut"; $requete = $bdd->prepare($sql); $requete->bindParam(':rid_adherent', $adherent_insert); $requete->bindParam(':rid_categorie_statut', $categorie_statut); $requete->execute(); $sql = "UPDATE tb_gestion_membre SET rid_adherent=:rid_adherent, categorie_actif=:categorie_actif, categorie_non_actif=:categorie_non_actif, sortant=:sortant, annee_admission=:annee_admission, annee_demission=:annee_demission WHERE id_gestion_membre=:id_gestion_membre"; $requete = $bdd->prepare($sql); $requete->bindParam(':id_gestion_membre', $PARAM['ID_GESTION_MEMBRE']); $requete->bindParam(':rid_adherent', $adherent_insert); $requete->bindParam(':categorie_actif', $PARAM['CATEGORIE_ACTIF']); $requete->bindParam(':categorie_non_actif', $PARAM['CATEGORIE_NON_ACTIF']); $requete->bindParam(':sortant', $PARAM['SORTANT']); $requete->bindParam(':annee_admission', $PARAM['ANNEE_ADMISSION']); $requete->bindParam(':annee_demission', $PARAM['ANNEE_DEMISSION']); $requete->execute(); // Utiliser la redirection --------------- redir("index.php?body=gestion_membre&type=compte"); break;
Voici ma requète pour sélectionner mes valeurs à afficher
case 'edit': $sql = ("SELECT * FROM tb_adherent WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "' ORDER BY nom ASC") or die(print_r($bdd->errorInfo())); $requete = $bdd->prepare($sql); $requete->execute(); $reponse = $requete->setFetchMode(PDO::FETCH_ASSOC); $donnees = $requete->fetch(); break;
Et pour terminer voici mon lien qui affiche mon formulaire
<a href="./index.php?body=gestion_membre&type=compte&action=edit&id_adherent=<?php echo $donnees['id_adherent'];?>" onclick="ad_user()">
Il y a seulement les valeurs de la table tb_adherent qui s'affiche bien dans le formulaire et que je peux modifier.
Pouvez-vous me donner un petit coup de main s'ils vous plait ça serai très gentil je galère depuis bien longtemps.
Je pense que ça vient surement de la requète et de mon lien.
Un très grand merci
A voir également:
- Modification de plusieurs tables
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Tables des matières word - Guide
- Modification dns - Guide
- Tables ascii - Guide
5 réponses
Bonjour
Si jamais "Pitet" vous êtes dans le coin car m'avez déjà bien aider mais avec ses jointures je suis à la rue, j'aimerai tellement essayer de comprendre.
Merci encore de votre aide éventuel.
Si jamais "Pitet" vous êtes dans le coin car m'avez déjà bien aider mais avec ses jointures je suis à la rue, j'aimerai tellement essayer de comprendre.
Merci encore de votre aide éventuel.
Salut,
Si je comprend bien :
- tu utilises 3 tables pour la gestion des adhérents
- lorsque tu veux éditer un adhérent, tu récupères les informations des ces 3 tables puis tu affiches le formulaire d'édition avec toutes les informations récupérées juste avant
Effectivement le problème doit déjà venir de la requête puisque tu ne récupères les infos que d'une seule table. Pour récupérer les infos de l'adhérent depuis les 3 tables en utilisant des jointures, tu peut essayer ceci :
Il faut évidemment que les champs tb_gestion_admin.rid_adherent et tb_gestion_membre.rid_adherent correspondent bien a des clés étrangères de tb_adherent.id_adherent.
Bon courage !
Si je comprend bien :
- tu utilises 3 tables pour la gestion des adhérents
- lorsque tu veux éditer un adhérent, tu récupères les informations des ces 3 tables puis tu affiches le formulaire d'édition avec toutes les informations récupérées juste avant
Effectivement le problème doit déjà venir de la requête puisque tu ne récupères les infos que d'une seule table. Pour récupérer les infos de l'adhérent depuis les 3 tables en utilisant des jointures, tu peut essayer ceci :
$sql = ("SELECT * FROM tb_adherent LEFT JOIN tb_gestion_admin ON tb_adherent.id_adherent = tb_gestion_admin.rid_adherent LEFT JOIN tb_gestion_membre ON tb_adherent.id_adherent = tb_gestion_membre.rid_adherent WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "' ORDER BY nom ASC");
Il faut évidemment que les champs tb_gestion_admin.rid_adherent et tb_gestion_membre.rid_adherent correspondent bien a des clés étrangères de tb_adherent.id_adherent.
Bon courage !
Bonjour
Merci de ta réponse.
En fait j'avais oublié de faire les jointures donc ça c'est bon.
Mais ce que je ne comprends vraiment pas c'est pour les INSERT tout fonctionne bien pour supprimer un adherent aussi les clé étrangère sont ok également.
Mais pour faire les modifs seul la table tb_adherent fonctionne le reste ne peuvent pas se modifier c'est vraiment bizarre et je ne voie vraiment pas d'ou provient ça.
Par exemple l'input du champ annee_admission s'affiche bien dans mon formulaire mais impossible de le modifier, alors pourquoi juste la table tb_adherent qui fonctionne.
Juste pour info j'ai qu'un seul formulaire ça viens peut-être de ça non??
Merci encore pour ton aide précieuse.
Merci de ta réponse.
En fait j'avais oublié de faire les jointures donc ça c'est bon.
Mais ce que je ne comprends vraiment pas c'est pour les INSERT tout fonctionne bien pour supprimer un adherent aussi les clé étrangère sont ok également.
Mais pour faire les modifs seul la table tb_adherent fonctionne le reste ne peuvent pas se modifier c'est vraiment bizarre et je ne voie vraiment pas d'ou provient ça.
Par exemple l'input du champ annee_admission s'affiche bien dans mon formulaire mais impossible de le modifier, alors pourquoi juste la table tb_adherent qui fonctionne.
Juste pour info j'ai qu'un seul formulaire ça viens peut-être de ça non??
Merci encore pour ton aide précieuse.
Bonsoir
Un petit service à te demander s'il te plait.
Si je t'envoie mon fichier "gestion membre" pour y jeter un oeil pour voir si tu peux me résoudre ce problème sincérement je ne voie vraiment pas d'où l'erreur peut venir.
Mon fichier n'est pas très volumineux.
Je te remercie.
Un petit service à te demander s'il te plait.
Si je t'envoie mon fichier "gestion membre" pour y jeter un oeil pour voir si tu peux me résoudre ce problème sincérement je ne voie vraiment pas d'où l'erreur peut venir.
Mon fichier n'est pas très volumineux.
Je te remercie.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question