Afficher la bonne variable récupérée de SQL
Résolu
Povo
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
Povo Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Povo Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde !
Je m'adresse à vous car mes neurones refusent de fonctionner...
J'ai un pb sur une requete dans ma bdd...
J'explique :
Dans ma bdd, table "users", le pseudo est stocké dans "username" et le nom dans "name"
Les utilisateurs suivants sont enregistrés dans ma bdd :
- Le pseudo "Fab" appartenant à "Fabrice"
- Le pseudo "Titi" appartenant à "Thierry"
"Fab" se connecte sur mon site ; (jusque là, c'est cool lol)
Je voudrais voir s'afficher "Bonjour Fabrice (Fab)" ; (idiot comme truc...)
Je fais donc un beau :
<?
$name = $db->get_sql_field("SELECT name FROM " . DB_PREFIX . "users" );
?>
<?=$name;?>
<b>
(<?=$member_username; ?> )
</b>
qui bien sur me renvoie un magnifique
Bonjour Fabrice (Fab)
EUREKA CA MARCHE !!!!
Et ben non... parce que si "Thierry" se connecte ça me met :
Bonjour Fabrice (Titi)
En clair, la requete me récupère toujours LA 1ERE LIGNE DE MA BASE DE DONNEES et je ne sais pas comment lui faire récupérer la bonne ligne par rapport à la personne connectée...
Je bug...
Je ne le précise pas : tout le monde aura compris que je débute en PHP lol
J'ai même essayé un beau
$name = mysql_query("SELECT name FROM " . DB_PREFIX . "WHERE name=['$username']);
qui ne donne RIEN...
Merci pour votre aide précieuse !!
Je m'adresse à vous car mes neurones refusent de fonctionner...
J'ai un pb sur une requete dans ma bdd...
J'explique :
Dans ma bdd, table "users", le pseudo est stocké dans "username" et le nom dans "name"
Les utilisateurs suivants sont enregistrés dans ma bdd :
- Le pseudo "Fab" appartenant à "Fabrice"
- Le pseudo "Titi" appartenant à "Thierry"
"Fab" se connecte sur mon site ; (jusque là, c'est cool lol)
Je voudrais voir s'afficher "Bonjour Fabrice (Fab)" ; (idiot comme truc...)
Je fais donc un beau :
<?
$name = $db->get_sql_field("SELECT name FROM " . DB_PREFIX . "users" );
?>
<?=$name;?>
<b>
(<?=$member_username; ?> )
</b>
qui bien sur me renvoie un magnifique
Bonjour Fabrice (Fab)
EUREKA CA MARCHE !!!!
Et ben non... parce que si "Thierry" se connecte ça me met :
Bonjour Fabrice (Titi)
En clair, la requete me récupère toujours LA 1ERE LIGNE DE MA BASE DE DONNEES et je ne sais pas comment lui faire récupérer la bonne ligne par rapport à la personne connectée...
Je bug...
Je ne le précise pas : tout le monde aura compris que je débute en PHP lol
J'ai même essayé un beau
$name = mysql_query("SELECT name FROM " . DB_PREFIX . "WHERE name=['$username']);
qui ne donne RIEN...
Merci pour votre aide précieuse !!
A voir également:
- Afficher la bonne variable récupérée de SQL
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher mot de passe - Guide
11 réponses
Il faut mettre une condition WHERE sinon il te retournera toujours la première OU dernière ligne (je ne sais plus mais une des deux).
$result = mysql_query("SELECT name FROM users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
Ça ce serait une requête valide. Est-ce que DB_PREFIX est une variable?
$result = mysql_query("SELECT name FROM users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
Ça ce serait une requête valide. Est-ce que DB_PREFIX est une variable?
Bonjour,
Il faut que tu prennes une référence pour chercher dans ta base de données...
Je suppose que la personne qui se connecte, se connecte avec son pseudo. Ta référence c'est donc le pseudo.
Donc, lors de la connection de l'user, tu récupères le pseudo dans une variable $pseudo par exemple.
Et ce que tu veux c'est afficher le nom et le pseudo sur la page.
Il te reste donc à récupérer le nom correspondant au pseudo.
En SQL : SELECT name FROM users WHERE username=$username
Donc reprend ton deuxième code et change le WHERE name=['$username']); en WHERE username=['$username']);
Après pour la synthaxe, ça fait tellement longtemps que j'ai plus touché au php, je saurais pas dire si elle est correcte.
Tiens moi au courant,
Il faut que tu prennes une référence pour chercher dans ta base de données...
Je suppose que la personne qui se connecte, se connecte avec son pseudo. Ta référence c'est donc le pseudo.
Donc, lors de la connection de l'user, tu récupères le pseudo dans une variable $pseudo par exemple.
Et ce que tu veux c'est afficher le nom et le pseudo sur la page.
Il te reste donc à récupérer le nom correspondant au pseudo.
En SQL : SELECT name FROM users WHERE username=$username
Donc reprend ton deuxième code et change le WHERE name=['$username']); en WHERE username=['$username']);
Après pour la synthaxe, ça fait tellement longtemps que j'ai plus touché au php, je saurais pas dire si elle est correcte.
Tiens moi au courant,
Apprend le langage SQL?
Une seule requête SQL peut faire tout ça proprement pour toi :)
Et regarde aussi au niveau des session -> session_start() etc... : essentiels!
bonne aprem :)
Une seule requête SQL peut faire tout ça proprement pour toi :)
Et regarde aussi au niveau des session -> session_start() etc... : essentiels!
bonne aprem :)
Pour avoir pas mal d'infos et de bonnes bases, va jeter un oeil ici :
https://openclassrooms.com/fr/
C'est très bien fait!
https://openclassrooms.com/fr/
C'est très bien fait!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re moi lol
merci pour votre aide rapide mais...
je fais ça :
<?
$result = mysql_query("SELECT name FROM '. DB_PREFIX .' WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
et... ça m'affiche rien....
quand ça veut pas ça veut pas....
je mets quoi du coup ??
PS : le . DB_PREFIX . c'est ce que j'ai récupéré dans un autre prog php de mon site ou il fait appel à la bdd en fait ça remplace le nom de ma bdd j'aurais pu faire ça :
<?
$result = mysql_query("SELECT name FROM nom_base_donnees WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
merci pour votre aide rapide mais...
je fais ça :
<?
$result = mysql_query("SELECT name FROM '. DB_PREFIX .' WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
et... ça m'affiche rien....
quand ça veut pas ça veut pas....
je mets quoi du coup ??
PS : le . DB_PREFIX . c'est ce que j'ai récupéré dans un autre prog php de mon site ou il fait appel à la bdd en fait ça remplace le nom de ma bdd j'aurais pu faire ça :
<?
$result = mysql_query("SELECT name FROM nom_base_donnees WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
Si tu as une variable $username contenant le nom de l'utilisateur (exemple fab ou titi) et que tu fais:
<?
$result = mysql_query("SELECT * FROM users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
C'est la façon juste de faire ça alors je ne sais pas. Soit tu n'as pas connecté la bonne BD, soit les données demandées ne sont pas présentes dedans. Perso, je monte la plupart de mes requêtes de cette façon et ça marche toujours.
<?
$result = mysql_query("SELECT * FROM users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
C'est la façon juste de faire ça alors je ne sais pas. Soit tu n'as pas connecté la bonne BD, soit les données demandées ne sont pas présentes dedans. Perso, je monte la plupart de mes requêtes de cette façon et ça marche toujours.
ben je dois être idiote alors mais si je fais comme tu dis :
<?
$result = mysql_query("SELECT name FROM users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
ou est le nom de ma base de données ?? vu que users est le nom de la table et pas de bdd il manque forcément le nom de ma base non ?
c'est pour ça, où est le bug dans mes lignes :
<?
$result = mysql_query("SELECT name FROM " . DB_PREFIX . " users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
j'oublie des ' ou des " ou j'en mets trop ... ???
suis perdue là....
<?
$result = mysql_query("SELECT name FROM users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
ou est le nom de ma base de données ?? vu que users est le nom de la table et pas de bdd il manque forcément le nom de ma base non ?
c'est pour ça, où est le bug dans mes lignes :
<?
$result = mysql_query("SELECT name FROM " . DB_PREFIX . " users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
j'oublie des ' ou des " ou j'en mets trop ... ???
suis perdue là....
Je sias pas comment tu codes mais moi j'utilise toujours des ' pour le php. A toi de voir. Tu dois faire un mysql_connect sur la base de données avant. Est-ce que tu l'as fait?
ben nan...
puisque je fais :
<?
$result = mysql_query("SELECT name FROM " . DB_PREFIX . " users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
ça va chercher dans la bdd . DB_PREFIX . mais je sais pas si il y a connexion ou pas...
je dois mettre quoi exactement comme ligne ??
suis nulle hein, désolée...
puisque je fais :
<?
$result = mysql_query("SELECT name FROM " . DB_PREFIX . " users WHERE username='".$username."'");
$row = mysql_fetch_array($result);
echo $row['name'];
?>
ça va chercher dans la bdd . DB_PREFIX . mais je sais pas si il y a connexion ou pas...
je dois mettre quoi exactement comme ligne ??
suis nulle hein, désolée...
$connect = mysql_connect(DB_SERVER,DB_SERVER_USERNAME,DB_SERVER_PASSWORD) or die ('ERREUR lors de la connexion');
// Sélection de la base de donnée
$db = mysql_select_db(DB_DATABASE) or die ("Connection to database is impossible.<br/>".mysql_errno()." : ".mysql_error()."");
Un truc du genre
// Sélection de la base de donnée
$db = mysql_select_db(DB_DATABASE) or die ("Connection to database is impossible.<br/>".mysql_errno()." : ".mysql_error()."");
Un truc du genre
bon ben résultat des courses :
connexion à la base ok (pas de message erreur) mais l'endroit ou doit s'afficher le nom reste vierge ;
j'ai juste un
Bonjour (Titi) sans le nom devant le (titi) ....
suis vraiment nulle et ça m'ennerve de pas comprendre où je bug...
connexion à la base ok (pas de message erreur) mais l'endroit ou doit s'afficher le nom reste vierge ;
j'ai juste un
Bonjour (Titi) sans le nom devant le (titi) ....
suis vraiment nulle et ça m'ennerve de pas comprendre où je bug...
EUREKA !!!
J'ai trouvé... non sans mal mais j'y suis arrivée !!! trop forte la Cathy (mdr)
Bref, je fais un
<?
$name = $db->get_sql_field("SELECT name FROM probid_users WHERE username = '".$member_username."'");
?>
<?=$name;?>
<b>
(<?=$member_username; ?>)
et ça roule !!
Merci à tous pour votre aide en tout cas et merci publiquement à mes neurones qui fonctionnent beauoup mieux passé 19h00 (je l'ai toujours su, je suis née à 19h c'est peut-être un signe lol)
J'ai trouvé... non sans mal mais j'y suis arrivée !!! trop forte la Cathy (mdr)
Bref, je fais un
<?
$name = $db->get_sql_field("SELECT name FROM probid_users WHERE username = '".$member_username."'");
?>
<?=$name;?>
<b>
(<?=$member_username; ?>)
et ça roule !!
Merci à tous pour votre aide en tout cas et merci publiquement à mes neurones qui fonctionnent beauoup mieux passé 19h00 (je l'ai toujours su, je suis née à 19h c'est peut-être un signe lol)