SELECT valeurs pour page profil.
Résolu/Fermé
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
-
Modifié par Legrandfifou le 4/07/2015 à 17:58
Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 - 5 juil. 2015 à 02:14
Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 - 5 juil. 2015 à 02:14
A voir également:
- SELECT valeurs pour page profil.
- Qui regarde mon profil facebook - Guide
- Supprimer une page word - Guide
- Qui regarde mon profil instagram - Guide
- Photo de profil - Guide
- Traduire une page - Guide
3 réponses
jordane45
Messages postés
38299
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2024
4 704
Modifié par jordane45 le 5/07/2015 à 01:44
Modifié par jordane45 le 5/07/2015 à 01:44
Bonjour,
Il ne faut Pas d'apostrophes ou de quotes autour des variables préparées dans la requête..
De plus... les variables :toto ... s'utilises avec les instructions PREPARE et EXECUTE ... pas QUERY !
Bien sûr.. il faut que tu penses à initialiser tes variables $pseudo et $id .... avec des valeurs....
PS: Au passage ... ne colle pas le code de connexion à ta BDD directement dans ta page..... places le dans un autre fichier que tu n'auras qu'à inclure dans tes pages.....
(via l'instruction REQUIRE_ONCE par exemple )
Il ne faut Pas d'apostrophes ou de quotes autour des variables préparées dans la requête..
De plus... les variables :toto ... s'utilises avec les instructions PREPARE et EXECUTE ... pas QUERY !
<?php //Connexion à la BDD require_once "connexionBDD.php"; // Récupération propre de la variable PSEUDO : $pseudo = isset($_SESSION['pseudo']) ? $_SESSION['pseudo'] : null; //Avant de faire le reste du code... je vérifie qu'il y a bien un pseudo if($pseudo ){ // Je sépare la requete de son exécution cela permet d'en faire un debug au cas où $sql = "SELECT birthday, country, lvl FROM membres WHERE pseudo = :pseudo AND id = :id "; // Je sépare les variables de la requête de son exécution cela permet d'en faire un debug au cas où $params = array(":pseudo"=>$pseudo,":id"=>$id); try{ $req = $bdd->prepare($sql); $req->execute($params); $donnees = $req->fetch(); } catch(Exception $e) { // en cas d'erreur echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } $lvl = $donnees['lvl']; echo "<div class='profile_connected'> <a href='profil'>$pseudo <img src='perso.png' class='perso_img' > </a> </div> $lvl"; }else{ echo '<div class="profile_connected">Bonjour, visiteur ! </div>'; }
Bien sûr.. il faut que tu penses à initialiser tes variables $pseudo et $id .... avec des valeurs....
PS: Au passage ... ne colle pas le code de connexion à ta BDD directement dans ta page..... places le dans un autre fichier que tu n'auras qu'à inclure dans tes pages.....
(via l'instruction REQUIRE_ONCE par exemple )
totoyo47
Messages postés
260
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
30 mars 2020
133
4 juil. 2015 à 19:08
4 juil. 2015 à 19:08
$req = $bdd->query('SELECT birthday, country, lvl FROM membres WHERE pseudo = :pseudo AND id = :id'); $donnees = $req->fetch()
Je ne m'y connais pas assez en PHP, mais disons que $req contient la requête SQL.
Le fetch permet d'obtenir les données (de la première ligne) de la requête.
Un expert en PHP t'aurait donné une explication plus précise ;)
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
Modifié par jordane45 le 5/07/2015 à 01:31
Modifié par jordane45 le 5/07/2015 à 01:31
Merci de ta réponse et je pense avoir compris avec fetch(); ! :) J'ai modifié comme ceci
Mais j'avais l'erreur
Donc j'ai rajouter des " a la ligne SELECT
L'erreur est supprimer mais ca n'affiche toujours rien :/
EDIT : Ajout du LANGAGE dans les BALISES DE CODE .
<?php $bdd = new PDO ('mysql:host=localhost;dbname=connexion', 'root'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $req = $bdd->query('SELECT birthday, country, lvl FROM membres WHERE pseudo = :pseudo AND id = :id '); $donnees = $req->fetch(); if (isset($_SESSION['pseudo'])) { echo "<div class='profile_connected'><a href='profil'>" , $_SESSION['pseudo'] , "</a> <img src='perso.png' class='perso_img' ></div>" , $donnees['lvl'] ," "; } else { echo '<div class="profile_connected">Bonjour, visiteur ! </div>'; } ?>
Mais j'avais l'erreur
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':pseudo AND id = :id' at line 1' in C:\wamp\www\tests\index.php on line 36
Donc j'ai rajouter des " a la ligne SELECT
<?php $bdd = new PDO ('mysql:host=localhost;dbname=connexion', 'root'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $req = $bdd->query('SELECT birthday, country, lvl FROM membres WHERE pseudo = ":pseudo" AND id = ":id" '); $donnees = $req->fetch(); if (isset($_SESSION['pseudo'])) { echo "<div class='profile_connected'><a href='profil'>" , $_SESSION['pseudo'] , "</a> <img src='perso.png' class='perso_img' ></div>" , $donnees['lvl'] ," "; } else { echo '<div class="profile_connected">Bonjour, visiteur ! </div>'; } ?>
L'erreur est supprimer mais ca n'affiche toujours rien :/
EDIT : Ajout du LANGAGE dans les BALISES DE CODE .
5 juil. 2015 à 01:59
5 juil. 2015 à 02:03
pour ce qui est de la façon de faire. .. je te propose la meilleur... si tu n'en veux pas. .. tant pis pour toi. ...
Modifié par Legrandfifou le 5/07/2015 à 02:14
du coup je ne la comprend pas , si tu as de plus ample informations , tuto , cours sur ca je les prends :)
Encore désolé et ta méthode fonctionne très bien :) Même si je n'ai pas la même mise en forme c'est très gentil et encore encore désolé