[PHP] Lire une ligne d'un membre dans une BDD

Ascla
Invité n'ayant pas de compte PHPfrance

04 nov. 2011, 19:38

Bonjour à tous,

J'ai un soucis, je possède un site http://stylecraft.fr (encore en construction) et j'ai fait un espace membre. Jusque la tout vas bien, mais dans mon espace membre, j'ai fait un système de rang, et quand le membre est connecté, j'aimerais qu'il lui dise, Bonjour 'NOM', tu es 'RANG'. Pour le nom j'ai réussis mais pour le rang, non. Voici mon code.
Tu es


 <?php 

		$base = mysql_connect ('**.**.***.***', 'rweiawag_users', '************');
		mysql_select_db ('rweiawag_users', $base);
    
    $sql = 'SELECT * FROM rang';
	echo htmlentities(trim(['rang']));

 ?>
Pour le nom j'ai réussis, car lors de la connexion, j'ai un $_POST['login']; qui prend le login, j'ai juste ensuite à mettre <?php echo htmlentities(trim($_SESSION['login'])); ?> .

Merci de m'éclairer. :priere:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 nov. 2011, 21:38

$sql = 'SELECT * FROM rang';
echo htmlentities(trim(['rang']));
Ces deux lignes n'ont pas vraiment de sens et en tout cas ne font rien (la premiere est ok mais tu n'executes pas la requete). Va donc voir ce sujet: http://phpdebutant.org/article66.php

Ascla
Invité n'ayant pas de compte PHPfrance

04 nov. 2011, 21:56

Je n'avais pas fait attention à cette erreur. Donc ce serait
    $sql = 'SELECT rang FROM users';
Mais comment faire pour que sa n'affiche que le rang du joueur connecté, j'ai bien un code à mettre lors de la connexion, non?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 nov. 2011, 23:16

Ce n'etait pas la principale erreur, ok c'est mieux de selectionner la colonne que tu veux en particulier et non toutes avec l'asterisque, mais bon la tout ce que tu fais c'est stocker une requete SQL (donc une simple chaine de caracteres) dans une variable. Nulle part tu n'executes cette requete sur le serveur de base de donnees.

As-tu jete un coup d'oeil sur le lien que je t'ai donne ?

Ascla
Invité n'ayant pas de compte PHPfrance

04 nov. 2011, 23:25

Oui j'ai jeté un coup d'œil, donc sa donnerais
 <?php 

                $base = mysql_connect ('**.**.***.***', 'rweiawag_users', '************');
                mysql_select_db ('rweiawag_users', $base);
    
                        $sql = 'SELECT rang FROM users';
			$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

while($data = mysql_fetch_assoc($req)) 
    { 
    echo $data['rang']; 
    } 

mysql_close(); 
?> 

 ?>
Mais ce code sélectionne tous les membres.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 nov. 2011, 23:53

Oui, car dans ta requete tu ne filtres pas sur un membre en particulier. Il faut utiliser la clause WHERE, regarde la doc MySQL. Met de cote PHP pour le moment, ecris une requete SQL qui selectionne seulement le rang d'un membre en particulier, et teste la directement sur MySQL (via phpMyADmin par exemple) jusqu'a ce qu'elle marche. Ensuite tu pourras la rentre dynamique en l'integrant dans PHP.

Ascla
Invité n'ayant pas de compte PHPfrance

05 nov. 2011, 01:02

J'ai essayé de suivre tes conseilles ( si je peux de tutoyer :) ). J'ai inséré ce code:
 <?php 

    // On se connecte à MySQL
		$base = mysql_connect ('**.**.***.***', 'rweiawag_users', '**********');
		mysql_select_db ('rweiawag_users', $base);
    
    $sql = 'SELECT rang FROM users WHERE login Ascla';
	echo $data['rang'];

 ?>
Mais dans ma page j'ai
Bienvenue !
Tu es 
Je n'ai même plus le login après Bienvenue.

Eléphant du PHP | 243 Messages

05 nov. 2011, 01:20

Je viens de créer un compte sur phpfrance histoire de ne pas perdre ce topic.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphant du PHP | 243 Messages

05 nov. 2011, 12:42

Désolé, j'ai trouvé l'erreur, maintenant sa donne:
 <?php 

    // On se connecte à MySQL
		$base = mysql_connect ('**.**.***.***', 'rweiawag_users', '***********');
		mysql_select_db ('rweiawag_users', $base);
    
    $sql = 'SELECT rang FROM users';
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	while($data = mysql_fetch_assoc($req)) 
    { 
	echo $data['rang'];
	}
mysql_close(); 
 ?>
Maintenant, que rajouter à cette ligne
 $sql = 'SELECT rang FROM users';
Si je met WHERE, je dois mettre quoi après?
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphant du PHP | 243 Messages

05 nov. 2011, 13:10

C'est bon j'ai réussis, merci à toi.

J'ai mis ceci:
$sql = 'SELECT rang FROM users WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini