Afficher dans un "if" les données d'une
Résolu
max1395
-
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 :
merci
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:
- Afficher dans un "if" les données d'une
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Afficher appdata - Guide
- Afficher calendrier outlook dans google agenda - Guide
- Trier des données excel - Guide
20 réponses
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;
?>
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;
?>
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+
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+
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
'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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le probleme est résolut merci mais ça ne m'affiche rien alors que sa devrait m'ecrire : vous n'avez pas de rang "
<?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 êtes rang 1'; //le code html des caracteres accentues tu connais ? } elseif ($rang == 2) { echo 'Vous êtes rang 2'; } elseif ($rang == 3) { echo 'Vous ê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 êtes rang 1'; break; //etc.. default: echo 'Vous n\'avez pas de rang'; break; } ?>
Merci mais sa me mais le message de "default" alors que sa devrait m'afficher le message de la case 1
voila le code :
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 êtes rang 1'; break; case "2": echo 'Vous êtes rang 2'; break; case "3": echo 'Vous êtes rang 3'; break; default: echo 'Vous n\'avez pas de rang'; break; } } ?>
fais voir tout le code de ta page !
mais il faudrait faire commencer tout tes script par
en gros tu initialise la session du visiteur des qu'il viens sur le site
à la connexion
et enfin quand tu veux savoir le rang :
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 êtes rang 1'; break; case "2": echo 'Vous êtes rang 2'; break; case "3": echo 'Vous êtes rang 3'; break; default: echo 'Vous n\'avez pas de rang'; break; } ?>
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
<?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(); ?>
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
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