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 calendrier outlook dans google agenda - Guide
- Trier des données excel - Guide
- Afficher le 0 devant un nombre dans 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