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
    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
  3. 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 $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";
    2. $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...
        }
        }
    3. 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! :)
    4. oui mais alors quel est la solution ?
      1. As-tu essayé ce que je t'ai dit ?
      2. oui mais meme resultat
    5. Contributeur
      Colle nous ton code, tu as une erreur dedans qui fait que un "echo" s'intègre a ta requête ;)
      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
          C'est quoi ça? => ecr('echo $req2');
          Remplace par echo $req2;