Modification de plusieurs tables

Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 21 avril 2014 à 04:22
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 27 avril 2014 à 20:28
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
		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


5 réponses

labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
22 avril 2014 à 07:42
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.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
22 avril 2014 à 16:32
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 :

$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 !
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
22 avril 2014 à 18:12
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.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
22 avril 2014 à 21:24
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
27 avril 2014 à 20:28
Bonjour

Je suis en train de reprendre toutes mes tables du début car je crois que mes tables de clé étrangères à quelques soucis et puis pour les adherent je suis passé de 6 à 5 tables.
Ensuite je verrai ce que ça donne.
Encore merci à tous
0