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   -
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 !!
A voir également:

11 réponses

X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
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?
0
cameleon33 Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   50
 
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,
0
[o.o]REplay Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   28
 
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 :)
0
cameleon33 Messages postés 635 Date d'inscription   Statut Membre Dernière intervention   50
 
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!
0

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

Posez votre question
Povo Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   7
 
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'];
?>
0
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
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.
0
Povo Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   7
 
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à....
0
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
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?
0
Povo Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   7
 
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...
0
X-Fan Messages postés 805 Date d'inscription   Statut Membre Dernière intervention   24
 
$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
0
Povo Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   7
 
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...
0
Povo Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   7
 
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)
0