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
Configuration: Windows Vista
Firefox 3.5.3

20 réponses

  1. jjsteing Messages postés 1613 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
  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
  3. Atropa Messages postés 2051 Statut Membre 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
  4. max1395
     
    Merci mais sa ne change rien je crois que le probleme vien de if ( $rang == 0 ) .... ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    <?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
  8. 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
  9. Atropa Messages postés 2051 Statut Membre 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
  10. graffx Messages postés 120 Date d'inscription   Statut Contributeur Dernière intervention   2 031
     
    C' est pas malin de mettre tes identifiants de connexion :/
    0
  11. 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
  12. Utilisateur anonyme
     
    juste une question hors sujet^^

    tu es né le 13/08/1995 ?
    0
  13. max1395
     
    oui pourquoi ?
    0
    1. Utilisateur anonyme
       
      le mot de passe ^^ t'inquiète moi je met bien 010296 (oui je suis le 1 février 1996)
      0
  14. max1395
     
    up !!! alors quelqu'un peux m'aider c'est tres important !
    merci beaucoup
    0
  15. Utilisateur anonyme
     
    salut je sais comment faire attend je te fait le code ^^
    0
  16. 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
  17. max1395
     
    merci beaucoup je vais essayer de suite .
    0
  18. 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