Recupération données BDD
Résolu/Fermé
A voir également:
- Recupération données BDD
- Recuperation de données - Guide
- Reinstaller windows sans perte de données - Guide
- Convertisseur récupération de texte - Guide
- Recuperation compte gmail - Guide
- Effacer les données de navigation - Guide
8 réponses
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
Ambassadeur
1 548
9 mars 2019 à 18:43
9 mars 2019 à 18:43
bonjour, si tu travailles sur une ligne après l'autre, tu peux faire:
$reponse = $pdo->query($query); while ($ligne = $reponse->fetch()) { // traitement d'une ligne de la réponse }
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
Ambassadeur
1 548
12 mars 2019 à 11:27
12 mars 2019 à 11:27
si je devines bien, tu travailles pour un membre déterminé, un seul à la fois.
ce membre a plusieurs enregistrements "aide", et, pour chaque "aide", il y a un enregistrement "client".
dans ce cas-là, comment veux-tu afficher tout cela? d'abord la partie 4 avec toutes les aides, et puis la partie 6 avec tous les clients? ou bien, après la partie 4 pour une aide, la partie 6 pour le client correspondant?
ce membre a plusieurs enregistrements "aide", et, pour chaque "aide", il y a un enregistrement "client".
dans ce cas-là, comment veux-tu afficher tout cela? d'abord la partie 4 avec toutes les aides, et puis la partie 6 avec tous les clients? ou bien, après la partie 4 pour une aide, la partie 6 pour le client correspondant?
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 548
12 mars 2019 à 14:25
12 mars 2019 à 14:25
je crois que tu veux d'abord afficher toutes les aides, et puis tous les clients.
alors, suggestion:
remplacer la ligne 169 par
ajouter avant la ligne 215
copier la ligne 197 avant la ligne 269
alors, suggestion:
remplacer la ligne 169 par
$toutes_aides = $reponse->fetchAll(); foreach ($toutes_aides as $infos_aide) {
ajouter avant la ligne 215
foreach ($toutes_aides as $infos_aide) {
copier la ligne 197 avant la ligne 269
Bonjour,
Merci pour ta patience avec moi et tes réponses.
Je veux effectivement afficher tous les dossiers des aides et puis tous les dossiers des clients. J'ai donc essayé ce que tu m'as suggéré et le résultat est vraiment positif. :) Il fait exactement ce que je voulais.
Pour la partie clients, je dois utiliser le même code (foreach) en adaptant les variables ou rien à voir?
Dès que j'aurai le temps, je lirai les documentations concernant la fonction foreach pour en savoir plus car elle a l'air intéressante :)
Merci à toi
Merci pour ta patience avec moi et tes réponses.
Je veux effectivement afficher tous les dossiers des aides et puis tous les dossiers des clients. J'ai donc essayé ce que tu m'as suggéré et le résultat est vraiment positif. :) Il fait exactement ce que je voulais.
Pour la partie clients, je dois utiliser le même code (foreach) en adaptant les variables ou rien à voir?
Dès que j'aurai le temps, je lirai les documentations concernant la fonction foreach pour en savoir plus car elle a l'air intéressante :)
Merci à toi
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 548
>
Dnartreb
12 mars 2019 à 19:01
12 mars 2019 à 19:01
si il y a plusieurs clients par aide, alors il faudrait utiliser soit le while avec fetch, soit le foreach avec fetchall.
le fetch est plus économique, le fetchall permettant de mémoriser tous les résultats pour les utiliser plusieurs fois. j'ai commencé avec le fetch, et suis passé au fetchall quand j'ai compris que tu voulais faire deux fois le tour des aides, dans les parties 4 et 6.
en passant, je vois que tu as des informations mal structurées: tu as par exemple le prénom du membre dans ta table aide, alors que cela ne devrait se trouver que dans la table membre.
le fetch est plus économique, le fetchall permettant de mémoriser tous les résultats pour les utiliser plusieurs fois. j'ai commencé avec le fetch, et suis passé au fetchall quand j'ai compris que tu voulais faire deux fois le tour des aides, dans les parties 4 et 6.
en passant, je vois que tu as des informations mal structurées: tu as par exemple le prénom du membre dans ta table aide, alors que cela ne devrait se trouver que dans la table membre.
Chaque aide ne comporte qu'un seul client. (1 aide = 1 client aidé par 1 membre).
Je récupère l'IDclient dans le dossier 'aide' qui s'est affiché plus haut... C'est surement là que ça me pose problème.
J'ai fait echo $IDclient, et la réponse est l'ID du client de la dernière aide citée à la partie 4.
Revoici mon code modifié pour les aides (fonctionnent correctement) et les clients (ne fonctionnent plus; a mon avis il ne fallait pas faire ce que j'ai fait...)
Je récupère l'IDclient dans le dossier 'aide' qui s'est affiché plus haut... C'est surement là que ça me pose problème.
J'ai fait echo $IDclient, et la réponse est l'ID du client de la dernière aide citée à la partie 4.
Revoici mon code modifié pour les aides (fonctionnent correctement) et les clients (ne fonctionnent plus; a mon avis il ne fallait pas faire ce que j'ai fait...)
<?php include('haut.php');?><?php include('membres/debut2.php');?><?php include('aides/bddaide.php');?><?php include('clients/debut.php');?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mes informations</title> <!--Style pour le body--> <!--Style partie 1--> <!--Style partie 2--> <!--Style partie 3--> <!--Style partie 5--> <style> body {background: rgba(255,221,95,1);} header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;} ul#menu_horizontal {list-style-type : none;} section {text-align:center;} ul#menuprofil {list-style-type : none;} ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;} .menuprofila {color: blue;} .menuprofila:hover {color: red;} h4 {text-align: center;} h3 {text-align: center;} table {text-align: center;} h2 {text-align: center;} p {text-align: center; margin-left: 2%; margin-right: 2%;} footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} </style> <!--Style pour le dossier des membres--> <link rel="stylesheet" href="cssmembres.css"> </head> <body> <!--Design des ancres. Montée et desecende animée--> <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script> <!--PARTIE 1--> <br> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Mes informations (Mon profil):</h2> <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.--> </header> <!--PARTIE 2--> <section> <!--Récupere l'identifiant de l'user -> L'envoyer à la BDD -> Afficher le prénom de l'utilisateur dans le div ci-dessous--> <?php $identifiant_utilisateur = ($_SESSION['user']['identifiant']) ?> <?php $query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD $infos_membre = $pdo->query($query)->fetch(); ?> <div id="menu"> <h3><?php echo $infos_membre['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3> <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4> <br> <ul id="menuprofil"><!--Menu pour cette page--> <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li> <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li> <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li> <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li> </ul> </div> </section> <!--PARTIE 3: Dossier du membre--> <div id="1"> <!--Récupere l'identifiant de l'user pour l'envoyer à la BDD--> <?php $identifiant_utilisateur = ($_SESSION['user']['identifiant']) ?> <br> <?php $query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD $infos_membre = $pdo->query($query)->fetch(); ?> <br> <span class="A"> <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'--> <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br> Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4> </span> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_membre['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_membre['prenom']; ?></td></tr> <tr><td width="50%">Date de naissance:</td><td><?php echo $infos_membre['date_naissance']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_membre['domiciliation']; ?></td></tr> <tr><td width="50%">Profession:</td><td><?php echo $infos_membre['profession']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription:</td><td><?php echo $infos_membre['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_membre['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_membre['ID']; ?></td></tr> <tr><td width="50%">Statut:</td><td><?php echo $infos_membre['statut']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aides:</caption> <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr> <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Finance:</caption> <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr> <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr> </table> </div> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <!--PARTIE 4: Dossier aide--> <div id="2"> <!--Récupere l'identifiant de l'user pour l'envoyer à la BDD--> <?php $identifiant_utilisateur = ($_SESSION['user']['identifiant']) ?> <?php $IDclient = $infos_aide['IDclient']; ?><!--Recupération de ID du client pour afficher son dossier--> <br> <?php $query = 'SELECT * FROM aide WHERE IDmembre="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD $reponse = $pdo->query($query); $toutes_aides = $reponse->fetchAll(); foreach ($toutes_aides as $infos_aide) { ?> <br> <section> <h2><u>Dossiers aides:</u></h2> <h3>Informations générales:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Numéro de l'aide:</th><th><?php echo $infos_aide['numero']; ?></th></tr> <tr><th>Statut de l'aide</th><th><?php echo $infos_aide['statut']; ?></th></tr> <tr><th>Date du début de l'aide:</th><th><?php echo $infos_aide['debut']; ?></th></tr> <tr><th>Date de fin de l'aide:</th><th><?php echo $infos_aide['fin']; ?></th></tr> </table> <br> <h3>Informations générales avancées:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Prénom du client:</th><th><?php echo $infos_aide['prenomclient']; ?></th></tr> <tr><th>ID du client:</th><th><?php echo $infos_aide['IDclient']; ?></th></tr> <tr><th>Prénom du membre:</th><th><?php echo $infos_aide['prenommembre']; ?></th></tr> <tr><th>ID du membre:</th><th><?php echo $infos_aide['IDmembre']; ?></th></tr> </table> <br> <h3>Informations sur l'aide:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Raison de l'aide:</th><th><?php echo $infos_aide['raisonaide']; ?></th></tr> <tr><th>Consultez les photos, etc. de l'aide</th><th><a href="0119001doc.php">Cliquez-ici</a></th></tr> <tr><th>Consultez les rapports journaliers:</th><th><a href="0119001rapport.php>">Cliquez-ici</a></th></tr> </table> </section> <?php } ?> </div> <br> <br> <?php foreach ($toutes_aides as $infos_aide) { ?> <?php } ?> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <br> <!--PARTIE 6: Dossier client--> <div id="4"> <!--Récupere l'identifiant de l'user pour l'envoyer à la BDD--> <?php $IDclient = $infos_aide['IDclient']; ?><!--ID du client ci-dessus--> <br> <?php $query = 'SELECT * FROM clients WHERE id="'.$IDclient.'"'; //Envoyer l'identifiant de l'user à la BDD $reponse = $pdo->query($query); $tous_clients = $reponse->fetchAll(); foreach ($tous_clients as $infos_clients) { ?> <br> <span class="A"> <h2><u>Dossier client:</u></h2> <h3>Sur cette page vous trouverez le dossier de <?php echo $infos_client['prenom']; ?> <?php echo $infos_client['nom']; ?>.</h3> <h4>Ce dossier sera mis à jour uniquement si nos services ont été mis au courant de modifications.</h4> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_client['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_client['prenom']; ?></td></tr> <tr><td width="50%">Âge:</td><td><?php echo $infos_client['age']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_client['domiciliation']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription*:</td><td><?php echo $infos_client['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_client['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_client['id']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_client['email']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_client['tel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="25%">Autres:</td><td width="25%"><?php echo $infos_client['contact']; ?></td><td>/</td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_client['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aide:</caption> <tr><td width="50%">Numéro(s) d'aide(s) attribué(s):</td><td><?php echo $infos_client['numeroaide']; ?></td></tr> </table> </span> <p>*: Date d'inscription est égal à la date du premier contact.</p> </div> <br> <?php } ?> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <!--Partie 5: Infos de connexion--> <div id="3"> <h2><u>Mes informations de connexion:</u></h2> <h3>Mot de passe</h3> <h3>Avant de modifier votre mot de passe, veuillez lire attentivement les remarques ci-dessous:</h3> <p>Votre mot de passe actuel est crypté dans une base de donnée ainsi que dans un document sécurisé chez l'administateur. Si vous modifiez votre mot de passe, vous le mettrez à jour uniquement dans la base de donnée! En cas d'oubli ou de perte, il sera donc compliqué à l'administrateur de le récupérer. <br> Pour remédier a cela, nous vous conseillons de prévenir l'administrateur du changement de mot de passe afin qu'il puisse mettre à jour la sauvegarde. Si vous ne souhaitez pas le transmettre à l'administrateur, vous êtes invité à l'écrire chez vous.<br> Pour un maximum de sécurité, veuillez choisir un mot de passe avec au moins 6caractères dont des lettres et chiffres! Les accents ne sont pas tolérés et entraineront des problèmes de connexion. Veuillez ne pas mettre le même mot de passe qu'un autre site, réseau social, etc.</p> <p>L'administrateur se garde le droit de bloquer un compte si une activité suspecte est remarquée.</p> <?php $password = $_POST['password']; $confirmation = $_POST['passwordconfirm']; if ($password == $confirmation) //Verification des deux mdp { if(!empty($_POST)) { if(!isset($_POST['password']) || empty($_POST['password'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner le nouveau mot de passe.</div>"; $valid=false; } if(!empty($_POST)) { if(!isset($_POST['passwordconfirm']) || empty($_POST['passwordconfirm'])) { echo "<div class='bandeau bandeau-error'>Merci de confirmer votre nouveau mot de passe.</div>"; $valid=false; } else { $password = htmlspecialchars($_POST['password']); $username = $_SESSION['user']['username']; $res = update_password($dbh, $username, $password); if($res) { echo "<div class='bandeau bandeau-success'>Le mot de passe a bien été mis à jour!</div>"; } else { echo "<div class='bandeau bandeau-error'>Une erreur est survenue. Contactez l'administrateur!</div>"; } } } } } else echo "Vos mots de passe ne sont pas identiques!" ?> <table style="text-align: center" border=1 width=90% align="center" cellspacing=0 cellpadding=0 > <tr> <td width="100%"><h3>Modifier mon mot de passe:</h3> <form method="POST" action=""> <label for="password">Nouveau mot de passe:</label> <input type="password" name="password" placeholder="Nouveau mot de passe" required/> <label for="passwordconfirm">Confirmer votre nouveau mot de passe:</label> <input type="password" name="passwordconfirm" placeholder="Confirmer mot de passe" required/> <input type="submit" /><br /><br /> </form> </td></tr> </table> <br> <h3>Pseudo:</h3> <p>Le pseudo est une des informations que vous devez entrer pour vous connecter, vous avez normalement pu le choisir. Si celui-ci ne vous convient plus, vous pouvez contacter l'administrateur pour le modifier...<br> Cette opération peut prendre entre 24h et 72h. Cette opération ne peut être effectuée régulièrement, la limite de modification reste à l'appréciation de l'administrateur!</p> <p style="text-align: center;">Votre pseudo est: <u><?php echo $_SESSION['user']['username']?></u></p> <br> <h3>ID:</h3> <p>L'ID est une des informations ques vous devez entrer pour vous connecter, celui-ci vous a été attribué d'office. L'ID ne peut être modifé (sauf une exception )... L'ID peut être modifié si le numéro peut vous porter préjudice (numéro d'habitation identique) ou si le numéro a un impact psychologique sur vous (si le numéro est équivalent à une date où un évenement choquant pour vous à eu lieu)<br> Cette demande doit être effectuée auprès de l'administrateur avec la raison détaillée. Cette démarche peut durer jusqu'à 1mois. L'administrateur peut refuser le changement si celui-ci apporte des contraintes trop importantes.</p> <p style="text-align: center;">Votre ID est: <u><?php echo $_SESSION['user']['identifiant']?></u></p> </div> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <?php include ("footer/footerprincipal.php") ?> </body> </html>
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 548
12 mars 2019 à 21:52
12 mars 2019 à 21:52
tu as choisi de ne pas faire ce que j'avais suggéré en #22.
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
12 mars 2019 à 22:29
12 mars 2019 à 22:29
Bonjour,
Je me permet d'intervenir .....
Ton code n'est pas ordonné et donc pas très lisible....
De plus.. tu ne gères pas les éventuelles erreurs PDO.
Je t'invite vivement à lire ( et à appliquer ! ) le contenu de ces deux liens :
- https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
( à commencer par placer le maximum de code php en dehors du html (avant le html même...) et éventuellement le découper en fonctions ainsi que la récupération "propre" des variables AVANT de les utiliser)
- https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Il serait bien également de nous montrer la structure de tes tables.
Il semble que tu fais deux requêtes... là où une simple jointure serait plus simple et plus performant...
Semble revenir à
Avec cette seule requête... tu récupères toutes les infos que tu souhaites afficher....
Un simple FETCH et le tour est joué...
Il faut absolument éviter des faire des requêtes dans des boucles provenant d'autres requêtes..... à moins que tu veuilles que ta page soit lente.....
Je me permet d'intervenir .....
Ton code n'est pas ordonné et donc pas très lisible....
De plus.. tu ne gères pas les éventuelles erreurs PDO.
Je t'invite vivement à lire ( et à appliquer ! ) le contenu de ces deux liens :
- https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
( à commencer par placer le maximum de code php en dehors du html (avant le html même...) et éventuellement le découper en fonctions ainsi que la récupération "propre" des variables AVANT de les utiliser)
- https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Il serait bien également de nous montrer la structure de tes tables.
Il semble que tu fais deux requêtes... là où une simple jointure serait plus simple et plus performant...
$query = 'SELECT * FROM aide WHERE IDmembre="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD
$query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD
$query = 'SELECT * FROM clients WHERE id="'.$IDclient.'"'; //Envoyer l'identifiant de l'user à la BDD
Semble revenir à
SELECT A.* ,M.* ,C.* FROM aide A LEFT JOIN membres M ON M.id =A.IDmembre LEFT JOIN clients C ON C.id = M.IDclient WHERE A.IDmembre = '$identifiant_utilisateur'
Avec cette seule requête... tu récupères toutes les infos que tu souhaites afficher....
Un simple FETCH et le tour est joué...
Il faut absolument éviter des faire des requêtes dans des boucles provenant d'autres requêtes..... à moins que tu veuilles que ta page soit lente.....
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 548
13 mars 2019 à 14:22
13 mars 2019 à 14:22
Dnartreb, pour suivre l'excellente suggestion de Jordane, il te suffit, dans le code partagé en #25, de modifier la ligne 225, pour avoir:
$query = 'SELECT C.* FROM clients C, aide A WHERE C.id = A.IDclient AND A.IDmembre ="'.$identifiant_utilisateur.'"';
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
>
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
13 mars 2019 à 14:54
13 mars 2019 à 14:54
enfin... ce n'est pas juste la ligne 255 ....... faut remettre au propre TOUT le code....
Dnartreb
>
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
13 mars 2019 à 15:35
13 mars 2019 à 15:35
Bonjour,
Ça a l'air simple et rapide mais je ne suis pas du métier, je suis débutant....
Tu me donnes une partie de code que je ne sais même pas où il faudrait le placer.
Ma page n'est pas lente pour le moment et une fois que j'aurais réussi à mettre plusieurs dossiers clients, la page sera finie. Évidemment ce n'est pas une raison pour ne pas suivre tes conseils mais a vrai dire, je me suis perdu.
On me dit régulièrement de mettre un code propre mais mise à part mes variables dont les noms ne sont parfois pas les meilleurs, que modifier? J'essaie de respecter le décalage, de mettre de enter quand je change de partie et des mettre quelques commentaires...
Ça a l'air simple et rapide mais je ne suis pas du métier, je suis débutant....
Tu me donnes une partie de code que je ne sais même pas où il faudrait le placer.
Ma page n'est pas lente pour le moment et une fois que j'aurais réussi à mettre plusieurs dossiers clients, la page sera finie. Évidemment ce n'est pas une raison pour ne pas suivre tes conseils mais a vrai dire, je me suis perdu.
On me dit régulièrement de mettre un code propre mais mise à part mes variables dont les noms ne sont parfois pas les meilleurs, que modifier? J'essaie de respecter le décalage, de mettre de enter quand je change de partie et des mettre quelques commentaires...
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
>
Dnartreb
13 mars 2019 à 15:51
13 mars 2019 à 15:51
Si tu lis les liens que je t'ai donné... tu y verras quelques recommandations...
comme par exemple... placer le maximum de code php AU dessus de tout code HTML.
De découper ton code php en FONCTIONS
De récupérer PROPREMENT les variables AVANT de les utiliser
D'activer l'affichage des erreurs php
etc...
comme par exemple... placer le maximum de code php AU dessus de tout code HTML.
De découper ton code php en FONCTIONS
De récupérer PROPREMENT les variables AVANT de les utiliser
D'activer l'affichage des erreurs php
etc...
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
13 mars 2019 à 16:00
13 mars 2019 à 16:00
Par exemple, tu pourrais juste commencer par regarder ce que fais ceci :
A partir de là .. tu n'auras plus qu'à remettres tes différentes DIV .. en te basant sur les données présentes dans l'array $infos
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include('haut.php'); include('membres/debut2.php'); include('aides/bddaide.php'); include('clients/debut.php'); //récupération PROPRE des variables AVANT de les utiliser $identifiant_utilisateur = !empty($_SESSION['user']['identifiant']) ? $_SESSION['user']['identifiant'] : NULL; if($identifiant_utilisateur){ //si il y a bien un identifiant utilisateur en session... $sql = "SELECT A.* ,M.* ,C.* FROM aide A LEFT JOIN membres M ON M.id =A.IDmembre LEFT JOIN clients C ON C.id = M.IDclient WHERE A.IDmembre = :user"; $datas = array(':user'=>$identifiant_utilisateur); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mes informations</title> <style> body {background: rgba(255,221,95,1);} header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;} ul#menu_horizontal {list-style-type : none;} section {text-align:center;} ul#menuprofil {list-style-type : none;} ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;} .menuprofila {color: blue;} .menuprofila:hover {color: red;} h4 {text-align: center;} h3 {text-align: center;} table {text-align: center;} h2 {text-align: center;} p {text-align: center; margin-left: 2%; margin-right: 2%;} footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} </style> <!--Style pour le dossier des membres--> <link rel="stylesheet" href="cssmembres.css"> </head> <body> <!--Design des ancres. Montée et desecende animée--> <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script> <!--PARTIE 1--> <br> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Mes informations (Mon profil):</h2> <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.--> </header> <!--PARTIE 2--> <section> <div id="menu"> <h3><?php echo $infos['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3> <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4> <br> <ul id="menuprofil"><!--Menu pour cette page--> <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li> <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li> <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li> <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li> </ul> </div> </section> <!--PARTIE 3: Dossier du membre--> <div id="1"> <pre> <?php //pour voir le contenu de la requête ..... print_r($infos); ?> </pre> </div> </body> </html>
A partir de là .. tu n'auras plus qu'à remettres tes différentes DIV .. en te basant sur les données présentes dans l'array $infos
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est bien gentil de ta part mais soit je ne suis vraiment pas fait pour ça soit je suis débile...
Dans ton premier message, tu mets en avant mes trois requetes qui me donne actuellement mes informations. Tu le remplaces par un seul bout de code mais je dois le mettre au dessus du code HTML comme tu me dis? Si oui, comment je dis que tels informations doit s'afficher là et tels informations doit s'afficher là?
J'ai essayé ce que tu m'as dit, enfin ce que j'ai compris, dans mon code, voici mon code... Dites moi les erreurs car ça fait 3jours que je fais ça et j'en ai un peu marre de tourner autour.
Je n'ai pas encore fait tout tes conseils...
Dans ton premier message, tu mets en avant mes trois requetes qui me donne actuellement mes informations. Tu le remplaces par un seul bout de code mais je dois le mettre au dessus du code HTML comme tu me dis? Si oui, comment je dis que tels informations doit s'afficher là et tels informations doit s'afficher là?
J'ai essayé ce que tu m'as dit, enfin ce que j'ai compris, dans mon code, voici mon code... Dites moi les erreurs car ça fait 3jours que je fais ça et j'en ai un peu marre de tourner autour.
<?php include('haut.php');?><?php include('membres/debut2.php');?><?php include('aides/bddaide.php');?><?php include('clients/debut.php');?> <?php $identifiant_utilisateur = ($_SESSION['user']['identifiant']); "SELECT A.* ,M.* ,C.* FROM aide A LEFT JOIN membres M ON M.id =A.IDmembre LEFT JOIN clients C ON C.id = M.IDclient WHERE A.IDmembre = '$identifiant_utilisateur'"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mes informations</title> <!--Style pour le body--> <!--Style partie 1--> <!--Style partie 2--> <!--Style partie 3--> <!--Style partie 5--> <style> body {background: rgba(255,221,95,1);} header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;} ul#menu_horizontal {list-style-type : none;} section {text-align:center;} ul#menuprofil {list-style-type : none;} ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;} .menuprofila {color: blue;} .menuprofila:hover {color: red;} h4 {text-align: center;} h3 {text-align: center;} table {text-align: center;} h2 {text-align: center;} p {text-align: center; margin-left: 2%; margin-right: 2%;} footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} </style> <!--Style pour le dossier des membres--> <link rel="stylesheet" href="cssmembres.css"> </head> <body> <!--Design des ancres. Montée et desecende animée--> <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script> <!--PARTIE 1--> <br> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Mes informations (Mon profil):</h2> <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.--> </header> <br> <!--PARTIE 2--> <section> <?php $query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD $infos_membre = $pdo->query($query)->fetch(); ?> <div id="menu"> <h3><?php echo $infos_membre['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3> <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4> <br> <ul id="menuprofil"><!--Menu pour cette page--> <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li> <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li> <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li> <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li> </ul> </div> </section> <!--PARTIE 3: Dossier du membre--> <div id="1"> <br> <?php $query = 'SELECT M.* FROM membre M WHERE M.ID ="'.$identifiant_utilisateur.'"'; $reponse = $pdo->query($query); $membre = $reponse->fetchAll(); foreach ($membre as $infos_membre) { ?> <br> <span class="A"> <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'--> <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br> Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4> </span> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_membre['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_membre['prenom']; ?></td></tr> <tr><td width="50%">Date de naissance:</td><td><?php echo $infos_membre['date_naissance']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_membre['domiciliation']; ?></td></tr> <tr><td width="50%">Profession:</td><td><?php echo $infos_membre['profession']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription:</td><td><?php echo $infos_membre['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_membre['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_membre['ID']; ?></td></tr> <tr><td width="50%">Statut:</td><td><?php echo $infos_membre['statut']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aides:</caption> <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr> <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Finance:</caption> <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr> <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr> </table> <?php } ?> </div> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <!--PARTIE 4: Dossier aide--> <div id="2"> <br> <?php $query = 'SELECT * FROM aide WHERE IDmembre="'.$identifiant_utilisateur.'"'; //Envoyer l'identifiant de l'user à la BDD $query = 'SELECT A.* FROM aide A WHERE A.IDmembre ="'.$identifiant_utilisateur.'"'; $reponse = $pdo->query($query); $toutes_aides = $reponse->fetchAll(); foreach ($toutes_aides as $infos_aide) { ?> <br> <section> <h2><u>Dossiers aides:</u></h2> <h3>Informations générales:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Numéro de l'aide:</th><th><?php echo $infos_aide['numero']; ?></th></tr> <tr><th>Statut de l'aide</th><th><?php echo $infos_aide['statut']; ?></th></tr> <tr><th>Date du début de l'aide:</th><th><?php echo $infos_aide['debut']; ?></th></tr> <tr><th>Date de fin de l'aide:</th><th><?php echo $infos_aide['fin']; ?></th></tr> </table> <br> <h3>Informations générales avancées:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Prénom du client:</th><th><?php echo $infos_aide['prenomclient']; ?></th></tr> <tr><th>ID du client:</th><th><?php echo $infos_aide['IDclient']; ?></th></tr> <tr><th>Prénom du membre:</th><th><?php echo $infos_aide['prenommembre']; ?></th></tr> <tr><th>ID du membre:</th><th><?php echo $infos_aide['IDmembre']; ?></th></tr> </table> <br> <h3>Informations sur l'aide:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Raison de l'aide:</th><th><?php echo $infos_aide['raisonaide']; ?></th></tr> <tr><th>Consultez les photos, etc. de l'aide</th><th><a href="0119001doc.php">Cliquez-ici</a></th></tr> <tr><th>Consultez les rapports journaliers:</th><th><a href="0119001rapport.php>">Cliquez-ici</a></th></tr> </table> </section> <?php } ?> </div> <br> <br> <?php foreach ($toutes_aides as $infos_aide) { ?> <?php } ?> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <br> <!--PARTIE 6: Dossier client--> <div id="4"> <br> <?php $query = 'SELECT C.* FROM clients C, aide A WHERE C.id = A.IDclient AND A.IDmembre ="'.$identifiant_utilisateur.'"'; $reponse = $pdo->query($query); $tous_clients = $reponse->fetchAll(); foreach ($tous_clients as $infos_clients) { ?> <br> <span class="A"> <h2><u>Dossier client:</u></h2> <h3>Sur cette page vous trouverez le dossier de <?php echo $infos_client['prenom']; ?> <?php echo $infos_client['nom']; ?>.</h3> <h4>Ce dossier sera mis à jour uniquement si nos services ont été mis au courant de modifications.</h4> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_client['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_client['prenom']; ?></td></tr> <tr><td width="50%">Âge:</td><td><?php echo $infos_client['age']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_client['domiciliation']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription*:</td><td><?php echo $infos_client['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_client['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_client['id']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_client['email']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_client['tel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="25%">Autres:</td><td width="25%"><?php echo $infos_client['contact']; ?></td><td>/</td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_client['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aide:</caption> <tr><td width="50%">Numéro(s) d'aide(s) attribué(s):</td><td><?php echo $infos_client['numeroaide']; ?></td></tr> </table> </span> <p>*: Date d'inscription est égal à la date du premier contact.</p> </div> <br> <?php } ?> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <!--Partie 5: Infos de connexion--> <div id="3"> <h2><u>Mes informations de connexion:</u></h2> <h3>Mot de passe</h3> <h3>Avant de modifier votre mot de passe, veuillez lire attentivement les remarques ci-dessous:</h3> <p>Votre mot de passe actuel est crypté dans une base de donnée ainsi que dans un document sécurisé chez l'administateur. Si vous modifiez votre mot de passe, vous le mettrez à jour uniquement dans la base de donnée! En cas d'oubli ou de perte, il sera donc compliqué à l'administrateur de le récupérer. <br> Pour remédier a cela, nous vous conseillons de prévenir l'administrateur du changement de mot de passe afin qu'il puisse mettre à jour la sauvegarde. Si vous ne souhaitez pas le transmettre à l'administrateur, vous êtes invité à l'écrire chez vous.<br> Pour un maximum de sécurité, veuillez choisir un mot de passe avec au moins 6caractères dont des lettres et chiffres! Les accents ne sont pas tolérés et entraineront des problèmes de connexion. Veuillez ne pas mettre le même mot de passe qu'un autre site, réseau social, etc.</p> <p>L'administrateur se garde le droit de bloquer un compte si une activité suspecte est remarquée.</p> <?php $password = $_POST['password']; $confirmation = $_POST['passwordconfirm']; if ($password == $confirmation) //Verification des deux mdp { if(!empty($_POST)) { if(!isset($_POST['password']) || empty($_POST['password'])) { echo "<div class='bandeau bandeau-error'>Merci de renseigner le nouveau mot de passe.</div>"; $valid=false; } if(!empty($_POST)) { if(!isset($_POST['passwordconfirm']) || empty($_POST['passwordconfirm'])) { echo "<div class='bandeau bandeau-error'>Merci de confirmer votre nouveau mot de passe.</div>"; $valid=false; } else { $password = htmlspecialchars($_POST['password']); $username = $_SESSION['user']['username']; $res = update_password($dbh, $username, $password); if($res) { echo "<div class='bandeau bandeau-success'>Le mot de passe a bien été mis à jour!</div>"; } else { echo "<div class='bandeau bandeau-error'>Une erreur est survenue. Contactez l'administrateur!</div>"; } } } } } else echo "Vos mots de passe ne sont pas identiques!" ?> <table style="text-align: center" border=1 width=90% align="center" cellspacing=0 cellpadding=0 > <tr> <td width="100%"><h3>Modifier mon mot de passe:</h3> <form method="POST" action=""> <label for="password">Nouveau mot de passe:</label> <input type="password" name="password" placeholder="Nouveau mot de passe" required/> <label for="passwordconfirm">Confirmer votre nouveau mot de passe:</label> <input type="password" name="passwordconfirm" placeholder="Confirmer mot de passe" required/> <input type="submit" /><br /><br /> </form> </td></tr> </table> <br> <h3>Pseudo:</h3> <p>Le pseudo est une des informations que vous devez entrer pour vous connecter, vous avez normalement pu le choisir. Si celui-ci ne vous convient plus, vous pouvez contacter l'administrateur pour le modifier...<br> Cette opération peut prendre entre 24h et 72h. Cette opération ne peut être effectuée régulièrement, la limite de modification reste à l'appréciation de l'administrateur!</p> <p style="text-align: center;">Votre pseudo est: <u><?php echo $_SESSION['user']['username']?></u></p> <br> <h3>ID:</h3> <p>L'ID est une des informations ques vous devez entrer pour vous connecter, celui-ci vous a été attribué d'office. L'ID ne peut être modifé (sauf une exception )... L'ID peut être modifié si le numéro peut vous porter préjudice (numéro d'habitation identique) ou si le numéro a un impact psychologique sur vous (si le numéro est équivalent à une date où un évenement choquant pour vous à eu lieu)<br> Cette demande doit être effectuée auprès de l'administrateur avec la raison détaillée. Cette démarche peut durer jusqu'à 1mois. L'administrateur peut refuser le changement si celui-ci apporte des contraintes trop importantes.</p> <p style="text-align: center;">Votre ID est: <u><?php echo $_SESSION['user']['identifiant']?></u></p> </div> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <?php include ("footer/footerprincipal.php") ?> </body> </html>
Je n'ai pas encore fait tout tes conseils...
Plus j'avance moins j'ai des informations qui s'affiche... J'avais perdu le dossier client, maintenant je n'ai plus rien qui s'affiche mise à part des erreurs. C'est déprimant.
J'ai copié ton code et j'ai mis le dossier membre... C'est à dire que j'ai ceci:
Dans tous mes <table></table>, je dois remplacer
Je ne comprends pas le fonctionnement du code que tu m'as donné, tu me dis que je dois rajouter mes <div> en me basant sur des données dans l'array $infos... Comment $infos sait qu'elle données j'ai besoin? Elle stocke toutes les données en même temps?
Quand j'essaie d'ouvrir ma page avec le code ci-dessus, j'ai plusieurs erreurs:
Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Notice: Undefined variable: bdd in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 30
Fatal error: Uncaught Error: Call to a member function prepare() on null in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php:30 Stack trace: #0 {main} thrown in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 30
Est-ce normal car je n'ai pas fini? J'ai fait une grosse erreur?
(Je sais que je suis chiant avec toutes mes questions, je m'excuse)
J'ai copié ton code et j'ai mis le dossier membre... C'est à dire que j'ai ceci:
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include('haut.php'); include('membres/debut2.php'); include('aides/bddaide.php'); include('clients/debut.php'); ?> <?php $identifiant_utilisateur = !empty($_SESSION['user']['identifiant']) ? $_SESSION['user']['identifiant'] : NULL; if($identifiant_utilisateur){ //si il y a bien un identifiant utilisateur en session... $sql = "SELECT A.* ,M.* ,C.* FROM aide A LEFT JOIN membres M ON M.id =A.IDmembre LEFT JOIN clients C ON C.id = M.IDclient WHERE A.IDmembre = :user"; $datas = array(':user'=>$identifiant_utilisateur); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mes informations</title> <!--Style pour le body--> <!--Style partie 1--> <!--Style partie 2--> <!--Style partie 3--> <!--Style partie 5--> <style> body {background: rgba(255,221,95,1);} header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;} ul#menu_horizontal {list-style-type : none;} section {text-align:center;} ul#menuprofil {list-style-type : none;} ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;} .menuprofila {color: blue;} .menuprofila:hover {color: red;} h4 {text-align: center;} h3 {text-align: center;} table {text-align: center;} h2 {text-align: center;} p {text-align: center; margin-left: 2%; margin-right: 2%;} footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} </style> <!--Style pour le dossier des membres--> <link rel="stylesheet" href="cssmembres.css"> </head> <body> <!--Design des ancres. Montée et desecende animée--> <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script> <!--PARTIE 1--> <br> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Mes informations (Mon profil):</h2> <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.--> </header> <br> <!--PARTIE 2--> <section> <div id="menu"> <h3><?php echo $infos['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3> <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4> <br> <ul id="menuprofil"><!--Menu pour cette page--> <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li> <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li> <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li> <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li> </ul> </div> </section> <!--PARTIE 3: Dossier du membre--> <div id="1"> <pre> <?php //pour voir le contenu de la requête ..... print_r($infos); ?> <br> <span class="A"> <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'--> <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br> Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4> </span> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_membre['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_membre['prenom']; ?></td></tr> <tr><td width="50%">Date de naissance:</td><td><?php echo $infos_membre['date_naissance']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_membre['domiciliation']; ?></td></tr> <tr><td width="50%">Profession:</td><td><?php echo $infos_membre['profession']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription:</td><td><?php echo $infos_membre['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_membre['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_membre['ID']; ?></td></tr> <tr><td width="50%">Statut:</td><td><?php echo $infos_membre['statut']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aides:</caption> <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr> <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Finance:</caption> <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr> <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr> </table> </pre> </div> <br>
Dans tous mes <table></table>, je dois remplacer
<?php echo $infos_membre['montant']; ?>par <?php echo $infos['montant']; ?> ou ça n'a rien à voir?
Je ne comprends pas le fonctionnement du code que tu m'as donné, tu me dis que je dois rajouter mes <div> en me basant sur des données dans l'array $infos... Comment $infos sait qu'elle données j'ai besoin? Elle stocke toutes les données en même temps?
Quand j'essaie d'ouvrir ma page avec le code ci-dessus, j'ai plusieurs erreurs:
Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Notice: Undefined variable: bdd in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 30
Fatal error: Uncaught Error: Call to a member function prepare() on null in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php:30 Stack trace: #0 {main} thrown in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 30
Est-ce normal car je n'ai pas fini? J'ai fait une grosse erreur?
(Je sais que je suis chiant avec toutes mes questions, je m'excuse)
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
13 mars 2019 à 17:04
13 mars 2019 à 17:04
vas y par étape...
Déjà.. que donne le code que je t'ai donné ? (et rien que ça sans que tu ne le modifies.... ) ??
Et si il y a des messages d'erreurs... lesquels ??
Déjà.. que donne le code que je t'ai donné ? (et rien que ça sans que tu ne le modifies.... ) ??
Et si il y a des messages d'erreurs... lesquels ??
J'ai mis ton code sans rien modifié et j'ai trois erreurs:
Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Notice: Undefined variable: bdd in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 31
Fatal error: Uncaught Error: Call to a member function prepare() on null in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php:31 Stack trace: #0 {main} thrown in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 31
Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Notice: Undefined variable: bdd in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 31
Fatal error: Uncaught Error: Call to a member function prepare() on null in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php:31 Stack trace: #0 {main} thrown in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 31
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
13 mars 2019 à 17:25
13 mars 2019 à 17:25
Notice: Undefined variable: bdd in
Oui un bête copié/collé de ma part..
Remplace le bloc d'exacution de la requête
//Execution de la requete try{ $requete = $pdo -> prepare($sql) ; $requete->execute($datas) ; $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
Fatal error: Uncaught Error: Call to a member function prepare() on null in
Message d'erreur lié au souci précédent..
Donc normalement pour ces deux là ça devrait être bon.
Concernant l'autre message:
Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Cela signifie que dans ton fichier haut.php à la ligne 42 .. tu fais référence à la variable "identifiant"... qui n'existe pas...
Ca ne devrait pas bloquer ton code pour l'instant... mais il faudra quand même le corriger à l'avenir.
Pour ça : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
Ca marche mieux comme ça...
Etape suivante:
J'ai remis le dossier membre (tous mes <table>). Je remets donc le code:
Ma page s'ouvre mais affiche une erreur à chaque endroit où j'ai mis 'echo'...
Voici l'erreur: Notice: Undefined index: nom in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 125
Je dois surement remplacer la variable $infos_membre[ ' ' ] par une autre variable mais je ne sais pas laquelle. J'ai essayé avec $infos mais ça n'a pas fonctionné.
Etape suivante:
J'ai remis le dossier membre (tous mes <table>). Je remets donc le code:
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include('haut.php'); include('membres/debut2.php'); include('aides/bddaide.php'); include('clients/debut.php'); //récupération PROPRE des variables AVANT de les utiliser $identifiant_utilisateur = !empty($_SESSION['user']['identifiant']) ? $_SESSION['user']['identifiant'] : NULL; if($identifiant_utilisateur){ //si il y a bien un identifiant utilisateur en session... $sql = "SELECT A.* ,M.* ,C.* FROM aide A LEFT JOIN membres M ON M.id =A.IDmembre LEFT JOIN clients C ON C.id = M.IDclient WHERE A.IDmembre = :user"; $datas = array(':user'=>$identifiant_utilisateur); //Execution de la requete try{ $requete = $pdo -> prepare($sql) ; $requete->execute($datas) ; $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mes informations</title> <style> body {background: rgba(255,221,95,1);} header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;} ul#menu_horizontal {list-style-type : none;} section {text-align:center;} ul#menuprofil {list-style-type : none;} ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;} .menuprofila {color: blue;} .menuprofila:hover {color: red;} h4 {text-align: center;} h3 {text-align: center;} table {text-align: center;} h2 {text-align: center;} p {text-align: center; margin-left: 2%; margin-right: 2%;} footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} </style> <!--Style pour le dossier des membres--> <link rel="stylesheet" href="cssmembres.css"> </head> <body> <!--Design des ancres. Montée et desecende animée--> <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script> <!--PARTIE 1--> <br> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Mes informations (Mon profil):</h2> <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.--> </header> <!--PARTIE 2--> <section> <div id="menu"> <h3><?php echo $infos['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3> <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4> <br> <ul id="menuprofil"><!--Menu pour cette page--> <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li> <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li> <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li> <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li> </ul> </div> </section> <!--PARTIE 3: Dossier du membre--> <div id="1"> <pre> <?php //pour voir le contenu de la requête ..... print_r($infos); ?> <br> <span class="A"> <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'--> <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br> Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4> </span> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_membre['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_membre['prenom']; ?></td></tr> <tr><td width="50%">Date de naissance:</td><td><?php echo $infos_membre['date_naissance']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_membre['domiciliation']; ?></td></tr> <tr><td width="50%">Profession:</td><td><?php echo $infos_membre['profession']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription:</td><td><?php echo $infos_membre['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_membre['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_membre['ID']; ?></td></tr> <tr><td width="50%">Statut:</td><td><?php echo $infos_membre['statut']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aides:</caption> <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr> <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Finance:</caption> <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr> <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr> </table> </pre> </div> </body> </html>
Ma page s'ouvre mais affiche une erreur à chaque endroit où j'ai mis 'echo'...
Voici l'erreur: Notice: Undefined index: nom in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/mesinfos.php on line 125
Je dois surement remplacer la variable $infos_membre[ ' ' ] par une autre variable mais je ne sais pas laquelle. J'ai essayé avec $infos mais ça n'a pas fonctionné.
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
>
Dnartreb
13 mars 2019 à 18:00
13 mars 2019 à 18:00
Tu continues à sauter les étapes.........
As tu regardé au moins ce que le code que je te donnais t'affichait ????
Sous quelle forme sont les données ????
Au cas où tu ne l'aurais pas compris... ça te retourne un ARRAY avec TOUTES les infos
Il va donc falloir BOUCLER DESSUS ( comme te l'a déjà indiqué Yg_be )...
Tu peux donc utiliser un FOREACH ...
As tu regardé au moins ce que le code que je te donnais t'affichait ????
Sous quelle forme sont les données ????
Au cas où tu ne l'aurais pas compris... ça te retourne un ARRAY avec TOUTES les infos
Il va donc falloir BOUCLER DESSUS ( comme te l'a déjà indiqué Yg_be )...
Tu peux donc utiliser un FOREACH ...
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
13 mars 2019 à 22:12
13 mars 2019 à 22:12
Y'a un moment où je vais avoir du mal à être plus clair que je ne le suis..........
Je t'ai donné du code....
Ce code contient déjà l'affichage du contenu de l'array (le résultat de ta requête est stocké dans une variable de type array...)
Donc...
Tu prends le code que je t'ai donné....dans ma réponse https://forums.commentcamarche.net/forum/affich-35913844-recuperation-donnees-bdd#27
Tu l'exécutes dans ton navigateur
Et tu nous copies colle le résultat......
Il serait bien également que tu nous fournisses un DUMP de ta bdd histoire qu'on connaisse la structure exacte de tes tables...
Et comme je sens que tu vas nous le demander... pour faire un DUMP;. c'est par ici :
https://www.google.com/search?q=dump+mysql+phpmyadmin
Je t'ai donné du code....
Ce code contient déjà l'affichage du contenu de l'array (le résultat de ta requête est stocké dans une variable de type array...)
<pre> <?php //pour voir le contenu de la requête ..... print_r($infos); ?> </pre>
Donc...
Tu prends le code que je t'ai donné....dans ma réponse https://forums.commentcamarche.net/forum/affich-35913844-recuperation-donnees-bdd#27
Tu l'exécutes dans ton navigateur
Et tu nous copies colle le résultat......
Il serait bien également que tu nous fournisses un DUMP de ta bdd histoire qu'on connaisse la structure exacte de tes tables...
Et comme je sens que tu vas nous le demander... pour faire un DUMP;. c'est par ici :
https://www.google.com/search?q=dump+mysql+phpmyadmin
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
Ambassadeur
1 548
14 mars 2019 à 08:59
14 mars 2019 à 08:59
la bdd est assez simple.
il y a trois parties à afficher successivement et indépendamment:
infos du membre sur base de
infos des aides sur base de
infos des clients sur base de
il y a trois parties à afficher successivement et indépendamment:
infos du membre sur base de
SELECT * FROM membres WHERE id=
infos des aides sur base de
SELECT * FROM aide WHERE IDmembre=
infos des clients sur base de
SELECT C.* FROM clients C, aide A WHERE C.id = A.IDclient AND A.IDmembre =
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 548
14 mars 2019 à 19:10
14 mars 2019 à 19:10
pour chacun des trois, il suffit d'ajouter identifiant_utilisateur, comme tu as fait pour les deux premiers.
pour les deux derniers, comme il y a plusieurs enregistrements à traiter, il faut utiliser while et fetch.
pour les deux derniers, comme il y a plusieurs enregistrements à traiter, il faut utiliser while et fetch.
Dnartreb
>
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
14 mars 2019 à 20:24
14 mars 2019 à 20:24
Je dois mettre ceci pour le dossier membre?
Si oui, c'est exactement ce qu'il y avait quand j'ai demandé de l'aide... Et si c'est cela, maintenant ça ne fonctionne plus.
Si non, je ne vois pas comment faire car juste ajouter '$identifiant_utilisateur' me retourne une erreur.
$query = 'SELECT * FROM membres WHERE id= '$identifiant_utilisateur'' $infos_membre = $pdo->query($query)->fetch(); ?>
Si oui, c'est exactement ce qu'il y avait quand j'ai demandé de l'aide... Et si c'est cela, maintenant ça ne fonctionne plus.
Si non, je ne vois pas comment faire car juste ajouter '$identifiant_utilisateur' me retourne une erreur.
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
1 548
>
Dnartreb
14 mars 2019 à 20:38
14 mars 2019 à 20:38
n'avais-tu pas plutôt:
$query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"';
Dnartreb
>
yg_be
Messages postés
23297
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
29 octobre 2024
14 mars 2019 à 21:33
14 mars 2019 à 21:33
Effectivement et ça fonctionne mieux :)
Je vais remettre tout le code de ma page afin que tu vois où j'en suis (car je galère toujours).
Le dossier membre s'affiche correctement, les dossiers aides s'affichent correctement et enfin les dossiers clients s'affichent correctement aussi...
Donc ça fonctionne comme je le souhaite mais...
-->J'ai encore une erreur (qui n'étais pas présente quand j'ai demandé de l'aide) tout au dessus de ma page: Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Cette page (haut.php) à été faite par un développeur et est utilisée sur tout mon site pour obliger une connexion à chaque page du site. (En cas de non-connexion, il y a une redirection vers la page de connexion).
Qu'est-ce qui peut provoquer cette erreur?
--> Sur ma page, juste en dessous du deuxième menu (se trouvant vers la ligne 100 dans le code), j'ai un petit bout de code qui me gêne... Il est affiché: Array
(
)
D'où vient t'il et comment l'enlever?
Je te remercie car ça fait presque 1semaine que tu m'aides à faire ce que je voulais (qui n'étais pas si compliqué). Tu as une grande patience...
Je vais remettre tout le code de ma page afin que tu vois où j'en suis (car je galère toujours).
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include('haut.php'); include('membres/debut2.php'); include('aides/bddaide.php'); include('clients/debut.php'); //récupération PROPRE des variables AVANT de les utiliser $identifiant_utilisateur = !empty($_SESSION['user']['identifiant']) ? $_SESSION['user']['identifiant'] : NULL; if($identifiant_utilisateur){ //si il y a bien un identifiant utilisateur en session... $sql = "SELECT A.* ,M.* ,C.* FROM aide A LEFT JOIN membres M ON M.id =A.IDmembre LEFT JOIN clients C ON C.id = M.IDclient WHERE A.IDmembre = :user"; $datas = array(':user'=>$identifiant_utilisateur); //Execution de la requete try{ $requete = $pdo -> prepare($sql) ; $requete->execute($datas) ; $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mes informations</title> <style> body {background: rgba(255,221,95,1);} header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;} ul#menu_horizontal {list-style-type : none;} section {text-align:center;} ul#menuprofil {list-style-type : none;} ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;} .menuprofila {color: blue;} .menuprofila:hover {color: red;} h4 {text-align: center;} h3 {text-align: center;} table {text-align: center;} h2 {text-align: center;} p {text-align: center; margin-left: 2%; margin-right: 2%;} footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;} </style> <!--Style pour le dossier des membres--> <link rel="stylesheet" href="cssmembres.css"> </head> <body> <!--Design des ancres. Montée et desecende animée--> <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script> <!--PARTIE 1--> <br> <header> <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="right" > <img src="https://www.tousuniscontrelesuicide.com/fs/Root/duehm-Logo_Rogne.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="200px" width="200px" align="left" > <br> <h1>Tous unis contre le suicide</h1> <h2>Mes informations (Mon profil):</h2> <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.--> </header> <br> <!--PARTIE 2--> <section> <div id="menu"> <h3><?php echo $infos['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3> <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4> <br> <ul id="menuprofil"><!--Menu pour cette page--> <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li> <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li> <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li> <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li> </ul> </div> </section> <!--PARTIE 3: Dossier du membre--> <div id="1"> <pre> <?php //pour voir le contenu de la requête ..... print_r($infos); $query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"'; $infos_membre = $pdo->query($query)->fetch(); ?> <br> <span class="A"> <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'--> <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br> Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4> </span> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_membre['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_membre['prenom']; ?></td></tr> <tr><td width="50%">Date de naissance:</td><td><?php echo $infos_membre['date_naissance']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_membre['domiciliation']; ?></td></tr> <tr><td width="50%">Profession:</td><td><?php echo $infos_membre['profession']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription:</td><td><?php echo $infos_membre['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_membre['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_membre['ID']; ?></td></tr> <tr><td width="50%">Statut:</td><td><?php echo $infos_membre['statut']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr> <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aides:</caption> <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr> <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Finance:</caption> <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr> <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr> </table> </pre> </div> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <!--PARTIE 4: Dossier aide--> <div id="2"> <br> <?php $query = 'SELECT * FROM aide WHERE IDmembre="'.$identifiant_utilisateur.'"'; $reponse = $pdo->query($query); $toutes_aides = $reponse->fetchAll(); foreach ($toutes_aides as $infos_aide) { ?> <br> <section> <h2><u>Dossiers aides:</u></h2> <h3>Informations générales:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Numéro de l'aide:</th><th><?php echo $infos_aide['numero']; ?></th></tr> <tr><th>Statut de l'aide</th><th><?php echo $infos_aide['statut']; ?></th></tr> <tr><th>Date du début de l'aide:</th><th><?php echo $infos_aide['debut']; ?></th></tr> <tr><th>Date de fin de l'aide:</th><th><?php echo $infos_aide['fin']; ?></th></tr> </table> <br> <h3>Informations générales avancées:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Prénom du client:</th><th><?php echo $infos_aide['prenomclient']; ?></th></tr> <tr><th>ID du client:</th><th><?php echo $infos_aide['IDclient']; ?></th></tr> <tr><th>Prénom du membre:</th><th><?php echo $infos_aide['prenommembre']; ?></th></tr> <tr><th>ID du membre:</th><th><?php echo $infos_aide['IDmembre']; ?></th></tr> </table> <br> <h3>Informations sur l'aide:</h3> <table border=2 width=70% align="center" cellspacing=0 cellpadding=1> <tr><th>Raison de l'aide:</th><th><?php echo $infos_aide['raisonaide']; ?></th></tr> <tr><th>Consultez les photos, etc. de l'aide</th><th><a href="0119001doc.php">Cliquez-ici</a></th></tr> <tr><th>Consultez les rapports journaliers:</th><th><a href="0119001rapport.php>">Cliquez-ici</a></th></tr> </table> </section> <?php } ?> </div> <br> <br> <?php foreach ($toutes_aides as $infos_aide) { ?> <?php } ?> <br> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> <br> <!--PARTIE 6: Dossier client--> <div id="4"> <br> <?php $query = 'SELECT C.* FROM clients C, aide A WHERE C.id = A.IDclient AND A.IDmembre = "'.$identifiant_utilisateur.'"'; $reponse = $pdo->query($query); $tous_clients = $reponse->fetchAll(); foreach ($tous_clients as $infos_clients) { ?> <br> <span class="A"> <h2><u>Dossier client:</u></h2> <h3>Sur cette page vous trouverez le dossier de <?php echo $infos_client['prenom']; ?> <?php echo $infos_client['nom']; ?>.</h3> <h4>Ce dossier sera mis à jour uniquement si nos services ont été mis au courant de modifications.</h4> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Informations générales:</caption> <tr><td width="50%">Nom:</td><td><?php echo $infos_client['nom']; ?></td></tr> <tr><td width="50%">Prénom:</td><td><?php echo $infos_client['prenom']; ?></td></tr> <tr><td width="50%">Âge:</td><td><?php echo $infos_client['age']; ?></td></tr> <tr><td width="50%">Domiciliation:</td><td><?php echo $infos_client['domiciliation']; ?></td></tr> </table> <br> <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1"> <caption>Informations supplémentaires:</caption> <tr><td width="50%">Date d'inscription*:</td><td><?php echo $infos_client['dateinscription']; ?></td></tr> <tr><td width="50%">Dernière mise à jour:</td><td><?php echo $infos_client['mise_a_jour']; ?></td></tr> <tr><td width="50%">ID:</td><td><?php echo $infos_client['id']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact:</caption> <tr><td width="45%">Adresse email:</td><td><?php echo $infos_client['email']; ?></td></tr> <tr><td width="45%">Téléphone:</td><td><?php echo $infos_client['tel']; ?></td></tr> </table> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Points de contact supplémentaire:</caption> <tr><td width="25%">Autres:</td><td width="25%"><?php echo $infos_client['contact']; ?></td><td>/</td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Divers:</caption> <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_client['commentaire']; ?></td></tr> </table> <br> <table border=1 width=90% align="center" cellspacing=0 cellpadding=1> <caption>Aide:</caption> <tr><td width="50%">Numéro(s) d'aide(s) attribué(s):</td><td><?php echo $infos_client['numeroaide']; ?></td></tr> </table> </span> <p>*: Date d'inscription est égal à la date du premier contact.</p> <?php } ?> </div> <br> <br> <?php foreach ($tous_clients as $infos_clients) { ?> <?php } ?> <br> <div class="fleche" align="center"> <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png" alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]" height="125px" width="75px" ></a> <p>(Clic sur la flèche pour retourner en haut de page)</p> </div> <br> </body> </html>
Le dossier membre s'affiche correctement, les dossiers aides s'affichent correctement et enfin les dossiers clients s'affichent correctement aussi...
Donc ça fonctionne comme je le souhaite mais...
-->J'ai encore une erreur (qui n'étais pas présente quand j'ai demandé de l'aide) tout au dessus de ma page: Notice: Undefined variable: identifiant in /homepages/22/d767857963/htdocs/organisation/V2tousmembres/haut.php on line 42
Cette page (haut.php) à été faite par un développeur et est utilisée sur tout mon site pour obliger une connexion à chaque page du site. (En cas de non-connexion, il y a une redirection vers la page de connexion).
Qu'est-ce qui peut provoquer cette erreur?
--> Sur ma page, juste en dessous du deuxième menu (se trouvant vers la ligne 100 dans le code), j'ai un petit bout de code qui me gêne... Il est affiché: Array
(
)
D'où vient t'il et comment l'enlever?
Je te remercie car ça fait presque 1semaine que tu m'aides à faire ce que je voulais (qui n'étais pas si compliqué). Tu as une grande patience...
9 mars 2019 à 18:47
Je dois mettre ce me donne pour remplacer ceci ou c'est en plus?
9 mars 2019 à 19:02
9 mars 2019 à 19:25
Modifié le 9 mars 2019 à 19:27
9 mars 2019 à 19:58
peut-être même plusieurs erreurs.
puisque tu utilises $arr dans les lignes 8 à 11, remplace $ligne par $arr dans la ligne 4.
par ailleurs, pourquoi ainsi as-tu mis l'accolade fermante dans la ligne 14?
est-ce ton premier exercice en php?
ne penses-tu pas que les lignes 6 et 7 devraient être avant la ligne 4, et la ligne 12 après l'accolade fermante?
as-tu examiné le code source de la page produite?