Afficher dans un "if" les données d'une

Résolu
max1395 -  
 max1395 -
Bonjour,
je voudrais afficher un message en fonction du rang d'un membre . Pour cela je récupère la donnée grace a une requet et apres je la mets dans un if mais sa bloque . sa me mets :

Parse error: syntax error, unexpected T_STRING

voila le code :
<?php
mysql_connect("localhost", "max13952", "lola130895");
mysql_select_db("max13952_db");
$requete2 = mysql_query('SELECT rang FROM membre WHERE pseudo) or die(mysql_error());
while ($donnees = mysql_fetch_array($requete2))
{ ?>
<table>
<?php
$rang=$_SESSION[rang];

if  ($rang == 0)
{
echo   'Vous n'avez pas de rang';
}
elseif  ($rang == 1)
{
echo   'Vous êtes rang 1';
}
elseif  ($rang == 2)
{
echo   'Vous êtes rang 2';
}
elseif  ($rang == 3)
{
echo   'Vous êtes rang 3';
}
}

mysql_close(); // Déconnexion de MySQL 
?>


merci
A voir également:

20 réponses

jjsteing Messages postés 1670 Date d'inscription   Statut Contributeur Dernière intervention   181
 
Bonjour :)

l erreur a ete resolu en post 7.. du moins en partie..

while ($donnees = mysql_fetch_array($requete2))
{ ?>
<table>
<?php

ce genre de chose est tres mal inetrpreté.. il vaut mieux utiliser :

while ($donnees = mysql_fetch_array($requete2))
{
echo "<table>";
...}

ou mieux encore :

$Html="Debut du corp de page";

while ($donnees = mysql_fetch_array($requete2))
{
$Html.="<table>";
...}
$Html.="Fin du corp de page";


ce qui donnerais pour ton code :

<?php
mysql_connect("localhost", "max13952", "lola130895");
mysql_select_db("max13952_db");
$requete2 = mysql_query('SELECT rang FROM membre WHERE pseudo) or die(mysql_error());
$Html=""
while ($donnees = mysql_fetch_array($requete2))
{
$Html="<table>";

switch($donnees['rang'])
{
case 0:
$Html.="Vous n'avez pas de rang";
break;
case 1:
$Html.="Vous êtes rang 1";
break;
case 2:
$Html.="Vous êtes rang 2";
break;
case 3:
$Html.="Vous êtes rang 3";
break;
}//fin switch
}//fin while
mysql_close();
$Html.="</table>";
echo $Html;
?>
2
Le_Steph
 
Il faut avancer pas à pas:
Modifier ton script ainsi:
while ($donnees = mysql_fetch_array($requete2))
{
echo "<table>";

$rang=$_SESSION[rang];

echo "Débug: le rang renvoyé par la variable de session est : ". $rang."<BR>";

switch($rang){
case "0":
echo 'Vous n\'avez pas de rang';
break;
case "1":
...

si tu n'as rien après les 2 points, c'est que $rang est null...

A+
1
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
change :

'Vous n'avez pas de rang';

par :

'Vous n\'avez pas de rang';

pour que la chaine ne s'arrête pas au '

ensuite tu devrais mettre le rang dans une variable de session à la connexion ça minimiserait les requêtes sql
0
max1395
 
Merci mais sa ne change rien je crois que le probleme vien de if ( $rang == 0 ) .... ?
0

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

Posez votre question
max1395
 
Le probleme est résolut merci mais ça ne m'affiche rien alors que sa devrait m'ecrire : vous n'avez pas de rang "
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
<?php
mysql_connect("localhost", "max13952", "lola130895");
mysql_select_db("max13952_db");
$requete2 = mysql_query('SELECT rang FROM membre WHERE pseudo') or die(mysql_error());
//ligne ci dessus il te manquait  une ' après pseudo, ensuite WHERE attend une condition donc il faudrait WHERE pseudo="'.$pseudo.'"'
//si $pseudo est le pseudo du membre

while ($donnees = mysql_fetch_array($requete2))
{ ?>
<table>
<?php
$rang=$_SESSION[rang];//pourquoi tu récupères $rang dans la SESSION alors que tu fais une boucle sur $données 

if  ($rang == 0)
{
echo   'Vous n'avez pas de rang'; //qd tu as une ' dans une chaine qui commence et finit par ', il faut les echapper
//donc echo   'Vous n\'avez pas de rang';
}
elseif  ($rang == 1)
{
echo   'Vous &ecirc;tes rang 1'; //le code html des caracteres accentues tu connais ?

}
elseif  ($rang == 2)
{
echo   'Vous &ecirc;tes rang 2';
}
elseif  ($rang == 3)
{
echo   'Vous &ecirc;tes rang 3';
}
}

mysql_close(); // Déconnexion de MySQL 

//a la place de tous ces if et elseif un switch /case serait mieux comme ça:
switch($rang){
	case "0":
		echo   'Vous n\'avez pas de rang';
	break;
	case "1":
		echo   'Vous &ecirc;tes rang 1';
	break;
	//etc..
	default:
		echo   'Vous n\'avez pas de rang';
	break;

}
?>
0
max1395
 
Merci mais sa me mais le message de "default" alors que sa devrait m'afficher le message de la case 1

voila le code :
<?php
mysql_connect('localhost','max1395','*******');
mysql_select_db('**********');
$requete2 = mysql_query('SELECT rang FROM membre WHERE pseudo="'.$pseudo.'"') or die(mysql_error());

while ($donnees = mysql_fetch_array($requete2))
{ ?>
<table>
<?php
$rang=$_SESSION[rang];
?>
<?php
switch($rang){
	case "0":
		echo   'Vous n\'avez pas de rang';
	break;
	case "1":
		echo   'Vous &ecirc;tes rang 1';
	break;
	case "2":
		echo   'Vous &ecirc;tes rang 2';
	break;
	case "3":
		echo   'Vous &ecirc;tes rang 3';
	break;
	default:
		echo   'Vous n\'avez pas de rang';
	break;

}
}
?>
0
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
fais voir tout le code de ta page !

mais il faudrait faire commencer tout tes script par
<?php

session_start();

if(!isset($_SESSION['rang'])) $_SESSION['rang'] = 0;


?>


en gros tu initialise la session du visiteur des qu'il viens sur le site

à la connexion

<?php
  $_SESSION['rang'] = $sql['rang'];
?>


et enfin quand tu veux savoir le rang :
<?php
switch($_SESSION['rang']){
	case "0":
		echo   'Vous n\'avez pas de rang';
	break;
	case "1":
		echo   'Vous &ecirc;tes rang 1';
	break;
	case "2":
		echo   'Vous &ecirc;tes rang 2';
	break;
	case "3":
		echo   'Vous &ecirc;tes rang 3';
	break;
	default:
		echo   'Vous n\'avez pas de rang';
	break;

}
?>
0
graffx Messages postés 6506 Date d'inscription   Statut Contributeur Dernière intervention   1 975
 
C' est pas malin de mettre tes identifiants de connexion :/
0
max1395
 
Pas fais exprès pour les identifiants .... Mais j'ai rien compris avec vos bouts de code si vous pouviez le refaire en entiers (enfin pour que je mis retrouve ) . merci beaucoup de voter aide
0
Utilisateur anonyme
 
juste une question hors sujet^^

tu es né le 13/08/1995 ?
0
max1395
 
oui pourquoi ?
0
Utilisateur anonyme
 
le mot de passe ^^ t'inquiète moi je met bien 010296 (oui je suis le 1 février 1996)
0
max1395
 
Ah d'accord ^^ .
0
max1395
 
up !!! alors quelqu'un peux m'aider c'est tres important !
merci beaucoup
0
max1395
 
up ,up !!
0
Utilisateur anonyme
 
salut je sais comment faire attend je te fait le code ^^
0
Utilisateur anonyme
 
<?php
mysql_connect("localhost", "max13952", "lola130895");
mysql_select_db("max13952_db");
$requete2 = mysql_query('SELECT rang FROM membre WHERE pseudo) or die(mysql_error());
while ($donnees = mysql_fetch_array($requete2))
{ ?>
<table>
<?php

switch($donnees['rang'])
  {
  case 0:
  echo   "Vous n'avez pas de rang";
  break;
  case 1:
  echo   "Vous êtes rang 1";
  break;
  case 2:
  echo   "Vous êtes rang 2";
  break;  
  case 3:
  echo   "Vous êtes rang 3";
  break;
  }
}
mysql_close();
?>


0
max1395
 
merci beaucoup je vais essayer de suite .
0
max1395
 
Bon et bien merci beaucoup tout marche . il suffisait enfaite de rajouter = '.pseudo.' ' apres WEHERE PSEUDO .Sinon tous était bon merci . le seul probleme c'est que quand j'essaye avec un membre de niveau 3 sa me mets :

max1395Vous êtes rang 3
Vous n'avez pas de rang
Vous n'avez pas de rang
Vous n'avez pas de rang


Comment résoudre ce mini pb .
merci beaucoup de votre aide
0
max1395
 
c'est bon merci post résolut
0