Gestion Membre
Résolu/Fermé
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
-
2 mai 2014 à 08:13
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 3 juil. 2014 à 18:16
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 3 juil. 2014 à 18:16
A voir également:
- Gestion Membre
- Membre indisponible vinted - Guide
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Gestion autorisation application android - Guide
- Logiciel gestion cave à vin gratuit - Télécharger - Cuisine & Gastronomie
61 réponses
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
6 mai 2014 à 18:54
6 mai 2014 à 18:54
Bonjour
En fait c'est pour pouvoir modifier si besoin comme les types texte où ça me réaffiche les coordonnés des membres donc après les INSERT.
donc c'est bien cela...
Est-ce de ré-afficher les précédentes cases cochées ?
Merci beaucoup
En fait c'est pour pouvoir modifier si besoin comme les types texte où ça me réaffiche les coordonnés des membres donc après les INSERT.
donc c'est bien cela...
Est-ce de ré-afficher les précédentes cases cochées ?
Merci beaucoup
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
Modifié par Gigatrappeur le 6/05/2014 à 19:39
Modifié par Gigatrappeur le 6/05/2014 à 19:39
OK.
Donc, le vrai besoin, c'est de cocher les case pour lesquelles on a une ligne qui est présente dans tb_adherent_gestion.
Je pense que tu peux résoudre le problème à l'aide d'une requête sql jointe :
Cordialement,
Gigatrappeur
Donc, le vrai besoin, c'est de cocher les case pour lesquelles on a une ligne qui est présente dans tb_adherent_gestion.
Je pense que tu peux résoudre le problème à l'aide d'une requête sql jointe :
$sql = "SELECT tbg.nom_gestion nom_gestion, tbg.id_gestion id_gestion, (NOT(tbag.rid_adherent IS NULL) AND tbag.rid_adherent = '" . $donnees['id_adherent'] . "') checked FROM tb_gestion tgb LEFT JOIN tb_adherent_gestion tbag ON tbag.rid_gestion = tbg.id_gestion"; $requete1 = $bdd->prepare($sql); $requete1->execute(); while ($donnees = $requete1->fetch(PDO::FETCH_ASSOC)) { echo "<tr>"; echo "<td width='20%'>".$donnees['nom_gestion']."</td>"; echo "<td width='20%'><input type='checkbox' name='nom_gestion[]' value='".$donnees['id_gestion']."'". ($donnees['checked'] ? ' checked="checked"':'') . "></td>"; echo "</tr>"; } $requete1->closeCursor();
Cordialement,
Gigatrappeur
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
6 mai 2014 à 20:20
6 mai 2014 à 20:20
Bonjour
J'ai juste une chose à te dire un grand MERCI.
Cela fonctionne comme je le souhaitais jamais je n'aurai pensé à faire une telle requète.
Merci encore
Bonne soirée.
J'ai juste une chose à te dire un grand MERCI.
Cela fonctionne comme je le souhaitais jamais je n'aurai pensé à faire une telle requète.
Merci encore
Bonne soirée.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
6 mai 2014 à 21:32
6 mai 2014 à 21:32
Excuse mpoi tu peux m'expliquer cette partie s'il te plait
Merci
(NOT(tbag.rid_adherent IS NULL)
Merci
(NOT(tbag.rid_adherent IS NULL)
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2014 à 09:35
7 mai 2014 à 09:35
La requête SQL fait un left join. Cela veut dire que MySQL construit une table temporaire à l'aide de tb_gestion et tb_adherent_gestion. le ON indique la condition de jointure. Sauf que dans le cas ou il n'y a pas de correspondance dans tb_adherent_gestion, la colonne est égale à null.
Pour que PHP puisse interpréter facilement, j'ai ajouté une modification de la valeur de cette colonne pour te permettre de voir un booléen plutôt qu'une donnée inconsistante.
Pour que PHP puisse interpréter facilement, j'ai ajouté une modification de la valeur de cette colonne pour te permettre de voir un booléen plutôt qu'une donnée inconsistante.
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
7 mai 2014 à 09:10
7 mai 2014 à 09:10
Bonjour
Je viens de m'apercevoir qu'il y a juste un tout petit soucis.
En fait lorsque j'insére un nouveau membre ça me garde les valeurs des checkboxs stocké du dernier membre enregistré et du coup ça m'insére une nouvelle checkbox alors il y a doublon, même si je décoche la checkbox et si un membre existe déjà avec une même valeur ça me fait un doublon.
J'espère que tu pourras me comprendre dans mon explication.
Je te remercie beaucoup de ton aide si précieuse.
Je viens de m'apercevoir qu'il y a juste un tout petit soucis.
En fait lorsque j'insére un nouveau membre ça me garde les valeurs des checkboxs stocké du dernier membre enregistré et du coup ça m'insére une nouvelle checkbox alors il y a doublon, même si je décoche la checkbox et si un membre existe déjà avec une même valeur ça me fait un doublon.
J'espère que tu pourras me comprendre dans mon explication.
Je te remercie beaucoup de ton aide si précieuse.
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2014 à 09:50
7 mai 2014 à 09:50
ok.
j'ai modifié la requête, elle comportait des erreurs :
Essaye de remplacer
j'ai modifié la requête, elle comportait des erreurs :
SELECT tbg.nom_gestion nom_gestion, tbg.id_gestion id_gestion, NOT(tbag.rid_adherent IS NULL) checked FROM tb_gestion tbg LEFT JOIN tb_adherent_gestion tbag ON tbag.rid_gestion = tbg.id_gestion AND tbag.rid_adherent = 'mettre_ici_l_id_adherent' ORDER BY tbg.id_gestion
Essaye de remplacer
'mettre_ici_l_id_adherent'par
$PARAM['ID_ADHERENT'].
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2014 à 09:50
7 mai 2014 à 09:50
N'hésite pas à tester la requête directement dans MySQL, cela peut aider à comprendre.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
7 mai 2014 à 11:02
7 mai 2014 à 11:02
Bonjour
Merci tout à l'air de bien fonctionner, je fait encore quelques essais pour être sur mais à priori c'est super cool.
J'ai juste supprimé dans le SELECT nom_gestion et id_gestion car je suppose que c'est en trop.
Juste me définir le NOT je voudrais comprendre le fonctionnement il y a pas trop longtemps que je me suis lancé dans le SQL et PHP.
Merci
Merci tout à l'air de bien fonctionner, je fait encore quelques essais pour être sur mais à priori c'est super cool.
J'ai juste supprimé dans le SELECT nom_gestion et id_gestion car je suppose que c'est en trop.
Juste me définir le NOT je voudrais comprendre le fonctionnement il y a pas trop longtemps que je me suis lancé dans le SQL et PHP.
Merci
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2014 à 14:15
7 mai 2014 à 14:15
Non, le nom_gestion et le id_gestion ne sont pas en trop, c'est juste pour renommer les colonnes que tu reçoit en PHP.
NOT = PAS
SI NOT NULL = SI PAS NULL (en fr)
En gros, ça donne la valeur inverse.
Exemple:
SI PAS NULL retourne VRAI sinon retourne FAUX
Je sais pas si c'est clair.
C'est pas spécifique au SQL.
C'est de la logique.
NOT = PAS
SI NOT NULL = SI PAS NULL (en fr)
En gros, ça donne la valeur inverse.
Exemple:
SI PAS NULL retourne VRAI sinon retourne FAUX
Je sais pas si c'est clair.
C'est pas spécifique au SQL.
C'est de la logique.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
7 mai 2014 à 18:49
7 mai 2014 à 18:49
Merci
En fait j'ai la table suivi du nom du champ et encore 1 fois le nom du champ
Ca me semblais pas normal.
Merci encore
En fait j'ai la table suivi du nom du champ et encore 1 fois le nom du champ
Ca me semblais pas normal.
Merci encore
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2014 à 19:06
7 mai 2014 à 19:06
N'oublie pas de marquer le sujet comme résolue, si c'est le cas.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
8 mai 2014 à 19:08
8 mai 2014 à 19:08
Bonjour
Pour terminer j'aurai aimé une dernière fois te demander encore une chose s'il te plait.
Pour ma liste déroulante afin que les valeurs rester afficher je peux me baser sur ton exemple a propos de mes checkboxs? mis à part que je met selected à la place de checked
Merci encore de ton aide
Pour terminer j'aurai aimé une dernière fois te demander encore une chose s'il te plait.
Pour ma liste déroulante afin que les valeurs rester afficher je peux me baser sur ton exemple a propos de mes checkboxs? mis à part que je met selected à la place de checked
Merci encore de ton aide
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
11 mai 2014 à 14:52
11 mai 2014 à 14:52
Bonjour
Un petit coup de main s'il te plait juste pour me corriger mon echo je pense que l'erreur vient de là pour que ça fonctionne pas.
J'ai beau essayer de comprendre mais je ne vois pas.
Encore une fois de plus un très grand merci.
Cordialement
Un petit coup de main s'il te plait juste pour me corriger mon echo je pense que l'erreur vient de là pour que ça fonctionne pas.
J'ai beau essayer de comprendre mais je ne vois pas.
Encore une fois de plus un très grand merci.
Cordialement
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
11 mai 2014 à 14:52
11 mai 2014 à 14:52
echo"<td width='15%'>"; echo"<select name='nom_statut' class='content_input' disabled=''>"; echo"<option value=''>- - - Statut - - -</option>"; $sql = "SELECT tb_statut.nom_statut, tb_statut.id_statut, NOT(tb_adherent_statut.rid_adherent IS NULL) selected FROM tb_statut LEFT JOIN tb_adherent_statut ON tb_adherent_statut.rid_statut = tb_statut.id_statut AND tb_adherent_statut.rid_adherent ='".$PARAM['ID_ADHERENT']."' ORDER BY tb_statut.id_statut"; $requete2 = $bdd->prepare($sql); $requete2->execute(); while ($donnees = $requete2->fetch(PDO::FETCH_ASSOC)) { echo"<option value='".$donnees["id_statut"]."'>".$donnees["nom_statut"]." ". ($donnees['selected'] ? ' selected="selected"':'') . "</option>\n"; } echo"</select>"; echo"</td>"; $requete2->closeCursor();
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
11 mai 2014 à 15:55
11 mai 2014 à 15:55
Salut,
désolés de ne pas avoir répondu plutôt. Je suis pas mal occupé et donc je n'ai pas eu le temps.
A première vu, ton attribut selected est écrit dans le texte qui est affiché et non dans la balise option.
Tu devrais normalement avoir un truc comme ça :
Sinon, ta requête à l'air correcte. Par contre, il faut que tes adhérents n'est qu'un seul status.
désolés de ne pas avoir répondu plutôt. Je suis pas mal occupé et donc je n'ai pas eu le temps.
A première vu, ton attribut selected est écrit dans le texte qui est affiché et non dans la balise option.
Tu devrais normalement avoir un truc comme ça :
echo"<option value='".$donnees["id_statut"]."'". ($donnees['selected'] ? ' selected="selected"':'') . ">".$donnees["nom_statut"]."</option>\n";
Sinon, ta requête à l'air correcte. Par contre, il faut que tes adhérents n'est qu'un seul status.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
11 mai 2014 à 23:11
11 mai 2014 à 23:11
Bonjour
Non y a pas de soucis j'ai voulu déjà regarder par moi-même si je pouvais trouver la solution.
Je te dis encore une fois un grand merci, je sais tu dois en avoir plein les poches mais je suis admiratif des personnes comme toi qui aide des personnes à résoudre leurs problème c'est vraiment génial de ta part ça fonctionne vraiment impec. Oui effectivement 1 adherent n'a qu'un et un seul statut.
Pour terminer ma gestion des membres j'ai une dernière fois besoin de ton savoir.
Pour modifier les données du formulaire j'ai la case 'edit' qui édite les données. Etant donnée que j'affiche les données des checkboxs et de la liste déroulante avec une requète, je pense qu'il faudrait faire une requète imbriquée?
Qu'en pense tu j'espère que tu pourras comprendre mon explication.
Merci
Avec cette requète j'affiche les données des adherents à l'exception des checkboxs et liste déroulante.
Bien sur j'ai aussi essayé de faire une requète avec jointure mais aucun résultat.
Non y a pas de soucis j'ai voulu déjà regarder par moi-même si je pouvais trouver la solution.
Je te dis encore une fois un grand merci, je sais tu dois en avoir plein les poches mais je suis admiratif des personnes comme toi qui aide des personnes à résoudre leurs problème c'est vraiment génial de ta part ça fonctionne vraiment impec. Oui effectivement 1 adherent n'a qu'un et un seul statut.
Pour terminer ma gestion des membres j'ai une dernière fois besoin de ton savoir.
Pour modifier les données du formulaire j'ai la case 'edit' qui édite les données. Etant donnée que j'affiche les données des checkboxs et de la liste déroulante avec une requète, je pense qu'il faudrait faire une requète imbriquée?
Qu'en pense tu j'espère que tu pourras comprendre mon explication.
Merci
Avec cette requète j'affiche les données des adherents à l'exception des checkboxs et liste déroulante.
Bien sur j'ai aussi essayé de faire une requète avec jointure mais aucun résultat.
case 'edit': $sql = ("SELECT * FROM tb_adherent WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "' ORDER BY nom ASC"); $requete = $bdd->prepare($sql); $requete->execute(); $reponse = $requete->setFetchMode(PDO::FETCH_ASSOC); $donnees = $requete->fetch();
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
12 mai 2014 à 19:15
12 mai 2014 à 19:15
Salut,
pour confirmer : tu cherche à récupérer toutes les données que tu as sur UN adhérent ?
pour confirmer : tu cherche à récupérer toutes les données que tu as sur UN adhérent ?
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
12 mai 2014 à 20:40
12 mai 2014 à 20:40
Bonjour
Oui c'est ça donc pour la table tb_adherent ça fonctionne je récupére tous les coordonnées d'un membre.
Voici le lien qui m'affiche les données du formulaire
Oui c'est ça donc pour la table tb_adherent ça fonctionne je récupére tous les coordonnées d'un membre.
Voici le lien qui m'affiche les données du formulaire
<a href="./index.php?body=gestion_membre&type=compte&action=edit&id_adherent=<?php echo $donnees['id_adherent'];?>" onclick="ad_user()">
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
15 mai 2014 à 13:19
15 mai 2014 à 13:19
Bonjour,
je pense que ta requête doit ressembler à ça :
L'
Par contre, comme tu peux avoir plusieurs lignes "nom_gestion", tu ne peux pas faire une requête imbriqué simplement.
Ou alors, il faut intégrer tous les "nom_gestion" pour l'adhérent dans une seule colonne.
En faisant un truc du genre :
je pense que ta requête doit ressembler à ça :
SELECT * FROM tb_adherent tba -- partie pour récupérer le status de l'adhérent INNER JOIN tb_adherent_statut tbas ON tbas.rid_adherent = tba.id_adherent INNER JOIN tb_statut tbs ON tbas.rid_statut = tbs.id_statut WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "' ORDER BY nom ASC
L'
ORDER BYn'est peut-être pas utile ici, si ?
Par contre, comme tu peux avoir plusieurs lignes "nom_gestion", tu ne peux pas faire une requête imbriqué simplement.
Ou alors, il faut intégrer tous les "nom_gestion" pour l'adhérent dans une seule colonne.
En faisant un truc du genre :
SELECT tba.*, tbs.nom_statut, GROUP_CONCAT(tbg.nom_gestion SEPARATOR ', ') nom_gestions FROM tb_adherent tba LEFT OUTER JOIN tb_adherent_statut tbas ON tbas.rid_adherent = tba.id_adherent LEFT OUTER JOIN tb_statut tbs ON tbs.id_statut = tbas.rid_statut LEFT OUTER JOIN tb_adherent_gestion tbag ON tbag.rid_adherent = tba.id_adherent LEFT OUTER JOIN tb_gestion tbg ON tbg.id_gestion = tbag.rid_gestion WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "'
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
16 mai 2014 à 06:59
16 mai 2014 à 06:59
Bonjour
Malheureusement ça ne fonctionne pas, peut-être faut-il modifier la case modifier?
comme tu l'avais fait pour la case ajouter.
Merci
INSERT
UPDATE
Malheureusement ça ne fonctionne pas, peut-être faut-il modifier la case modifier?
comme tu l'avais fait pour la case ajouter.
Merci
INSERT
if (isset($_POST['nom_gestion'])) { foreach($PARAM['NOM_GESTION'] as $nom_gestion) { $sql = 'INSERT INTO tb_adherent_gestion (rid_adherent, rid_gestion) VALUES ("'.$adherent_insert.'", "'.$nom_gestion.'")'; $requete = $bdd->prepare($sql); $requete->bindParam(':rid_adherent', $adherent_insert); $requete->bindParam(':rid_gestion', $nom_gestion); $requete->execute(); } } if (isset($_POST['nom_statut'])) { $nom_statut = $PARAM['NOM_STATUT']; $sql = 'INSERT INTO tb_adherent_statut (rid_adherent, rid_statut) VALUES ("'.$adherent_insert.'", "'.$nom_statut.'")'; $requete = $bdd->prepare($sql); $requete->bindParam(':rid_adherent', $adherent_insert); $requete->bindParam(':rid_statut', $nom_statut); $requete->execute(); } break;
UPDATE
$sql = "UPDATE tb_adherent_gestion SET rid_adherent=:rid_adherent, rid_gestion=:rid_gestion"; $requete = $bdd->prepare($sql); $requete->bindParam(':rid_adherent', $PARAM['RID_ADHERENT']); $requete->bindParam(':rid_gestion', $PARAM['RID_GESTION']); $requete->execute(); $sql = "UPDATE tb_adherent_statut SET rid_adherent=:rid_adherent, rid_statut=:rid_statut"; $requete = $bdd->prepare($sql); $requete->bindParam(':rid_adherent', $PARAM['RID_ADHERENT']); $requete->bindParam(':rid_statut', $PARAM['RID_STATUT']); $requete->execute();
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
16 mai 2014 à 07:06
16 mai 2014 à 07:06
J'ai également enlevé le s au nom de colonne "nom_gestion" j'ai dit on sait jamais, mais toujours pas.
labourette
Messages postés
657
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 juillet 2016
6
Modifié par labourette le 18/05/2014 à 10:20
Modifié par labourette le 18/05/2014 à 10:20
Bonjour
Il y a quelque chose qui me chagrine en fait.
si je test cette requète dans phpmyadmin ça retourne bien uniquement les données de l'adherent OK
si je test cette requète dans phpmyadmin ça retourne bien les données de l'adhérent avec toutes les jointures OK
Maintenant si dans ma page php si je met uniquement la première requète ça devrais pas m'afficher les données de l'adhérent avec les checkbox et la liste déroulante.
Ca devrais m'afficher que ce qui concerne la table "tb_adherent"
Merci
Il y a quelque chose qui me chagrine en fait.
si je test cette requète dans phpmyadmin ça retourne bien uniquement les données de l'adherent OK
SELECT * FROM tb_adherent WHERE id_adherent='1';
si je test cette requète dans phpmyadmin ça retourne bien les données de l'adhérent avec toutes les jointures OK
SELECT tba.*, tbs.nom_statut, GROUP_CONCAT(tbg.nom_gestion SEPARATOR ', ') nom_gestion FROM tb_adherent tba LEFT OUTER JOIN tb_adherent_statut tbas ON tbas.rid_adherent = tba.id_adherent LEFT OUTER JOIN tb_statut tbs ON tbs.id_statut = tbas.rid_statut LEFT OUTER JOIN tb_adherent_gestion tbag ON tbag.rid_adherent = tba.id_adherent LEFT OUTER JOIN tb_gestion tbg ON tbg.id_gestion = tbag.rid_gestion WHERE id_adherent='1';
Maintenant si dans ma page php si je met uniquement la première requète ça devrais pas m'afficher les données de l'adhérent avec les checkbox et la liste déroulante.
Ca devrais m'afficher que ce qui concerne la table "tb_adherent"
Merci
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
19 mai 2014 à 17:21
19 mai 2014 à 17:21
Pourquoi cela ne devrait pas afficher les checkboxs et le select ?