Requete php mysql

Résolu
Bonjour,
mon probleme est que ma requete ne fonctionne pas comme je voudrait, dans ma base de donnée mysql j'ai un champ droit util compose de 1 et 0
la reque te doit faire que si c'est 0 il affiche message .php et si c'est 1 ecrire et message .php
voici mon code
pour l'instant quand je l'execute il met toujours ecrire et message .php
if (!isset($_SESSION['nom'])) {

}else{

include('calendrier.php');
$req2 = 'SELECT DroitUtil
FROM utilisateur
WHERE NomUtil = "'.$_SESSION['nom'].'";';

$result2= mysql_query($req2);
while($data = mysql_fetch_assoc($result2)) {
if ($data = 0) {
include('message.php');

}else{
include('ecrire.php');
include('message.php');
}
}
}

13 réponses

  1. Voilà ce que je propose

    
    if (isset($_SESSION['nom']))  // pas la peine de mettre !
    {  
       include('calendrier.php');
       $req2 = 'SELECT DroitUtil
       FROM utilisateur
       WHERE NomUtil = "'.$_SESSION['nom'].'";';
    
       $result2= mysql_query($req2);
       echo($req2);                        // j'ai remis echo pour la forme :p
       $data = mysql_fetch_array($result2) // pas besoin de boucle si on attends une seule ligne
       
       if ($data[0] == 0)  // ne pas oublier l'indice
       {     
          include('message.php');
       }
       else
       {
          include('ecrire.php');
          include('message.php');
       }
          
    }
     
    
    1. il marque Parse error: parse error in C:\wamp\www\test 2\test 2.php on line 37
      soit la ligne if ($data[0] == 0) // ne pas oublier l'indice
    2. Contributeur
      La ligne au dessus, rajoute un point virgule après la parenthèse:
      $data = mysql_fetch_array($result2); // pas besoin de boucle si on attends une seule ligne
    3. Ouais en effet, j'ai oublié de le mettre quand j'ai viré le while... ^^"
  2. Contributeur
    C'est quoi ça? => ecr('echo $req2');
    Remplace par echo $req2;
    1. <?php
      //Paramètes de connexions à la base de données
      require('scripts2/bdd_param.php');
      //Connexion à la base de données
      require('scripts2/bdd_connexion.php');
      //Récupération des fonctions
      require('scripts2/fonctions.php');

      //Récupération des informations de connexion
      require('scripts/param.php');
      //Connexion à la base de données
      mysql_connect($bdd_hote,$bdd_login,$bdd_mdp) or die('Erreur de connexion au serveur MySQL');
      //Sélection de la base de données
      mysql_select_db($bdd_nom) or die('Erreur de sélection de la base de données');

      //Sessions
      session_start();

      //Entête page HTML
      ecr('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">');
      ecr('<html xmlns="http://www.w3.org/1999/xhtml">');
      ecr('<head>');
      ecr('<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />');
      ecr('<title>Site Mairie</title>');
      ecr('<link href="scripts/style.css" rel="stylesheet" type="text/css" />');
      ecr('</head>');
      ecr('<body>');
      $nom_ut=
      include('connexion.php');
      if (!isset($_SESSION['nom'])) {

      }else{

      include('calendrier.php');
      $req2 = 'SELECT DroitUtil
      FROM utilisateur
      WHERE NomUtil = "'.$_SESSION['nom'].'";';

      $result2= mysql_query($req2);
      ecr('echo $req2');
      while($data = mysql_fetch_array($result2)) {
      if ($data == 0) {
      include('message.php');

      }else{
      include('ecrire.php');
      include('message.php');
      }
      }
      }

      //Fermeture page HTML
      ecr('</body>');
      ecr('</html>');

      ?>
      1. Contributeur
        Colle nous ton code, tu as une erreur dedans qui fait que un "echo" s'intègre a ta requête ;)
        1. oui mais alors quel est la solution ?
          1. As-tu essayé ce que je t'ai dit ?
          2. oui mais meme resultat
        2. sa ne marche toujours pas en faisant un echo $req2 il affiche
          echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
          pourtant je suis sur que ma requete est bonne :
          1. Contributeur
            il affiche echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont"; ou SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
            C'est pas pareil du tout, et la première solution est une requête qui ne marchera pas! :)
        3. $req2 = 'SELECT DroitUtil
          FROM utilisateur
          WHERE NomUtil = "'.$_SESSION['nom'].'";';

          à remplacer par:

          $req2 = "SELECT 'DroitUtil' FROM 'utilisateur' WHERE 'NomUtil' = '".$_SESSION['nom']."'";

          Attention: les apostrophes avant et après: DroitUtil utilisateur NomUtil sont les apostrophes Alt Gr + 7
          1. il me mait
            Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\calendrier\index.php on line 38

            soit la ligne
            while($data = mysql_fetch_assoc($result2)) {
          2. Tu peux toujours changer mysql_fetch_assoc par mysql_fetch_array fonction qui a le même but.

            Par contre si l'erreur est encore la, alors c'est la requete qui est fausse auquel cas je te propose de la revoir, surtout avec les apostrophes... peut-être un echo $req2; permettrait de savoir si $_SESSION alimente correctement la requete.

            Ensuite, comme m_f_a comme m_f_a retourne un tableau donc dans ta ligne
            if ($data = 0) {
            Il faudrai mettre plutôt:

            while{...
            if ($data[0]=0) {
            ...etc...
            }
            }
        4. Contributeur
          Fait un "echo $req2;" Pour voir si ta requête est bonne.
          Montre nous ce que ça t'affiche.
          1. echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
        5. Bonjour,

          Essaye de mettre ta variable de session dans une variable simple, puis mettre cette dernière dans ta requete SQL
          1. Contributeur
            Fait un "echo $data" pour voir "en quoi c'est différent de 0". ;)
            On ne sait pas ce qu'il y a dans ta BDD nous.
            1. j'ai mis ecr(echo $data); apres la requete et il affiche : c'est a dire la ligne que je vient d'ajouter
              Parse error: parse error, expecting '')'' in C:\wamp\www\calendrier\index.php on line 40

              et quand je fait Resource ecr($result2); il m'affiche id #11

              ma base est compse de 5 champs :
              IdUtil LoginUtil MdpUtil NomUtil DroitUtil