Requete php mysql

Résolu
dupont123 -  
 dupont123 -
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. Gado
     
    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
    1. dupont123
       
      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
      0
    2. Apatik Messages postés 6040 Statut Contributeur 789
       
      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
      0
    3. Gado
       
      Ouais en effet, j'ai oublié de le mettre quand j'ai viré le while... ^^"
      0
  2. Apatik Messages postés 6040 Statut Contributeur 789
     
    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.
    0
    1. dupont123
       
      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
      0
  3. justoo76 Messages postés 203 Statut Membre 13
     
    Bonjour,

    Essaye de mettre ta variable de session dans une variable simple, puis mettre cette dernière dans ta requete SQL
    0
  4. louloute300 Messages postés 347 Statut Membre 29
     
    if ($data = 0) {

    à remplacer par:

    if ($data == 0) {
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dupont123
     
    salut
    j'ai toujours comme réponse
    Resource id #11
    0
  7. Apatik Messages postés 6040 Statut Contributeur 789
     
    Fait un "echo $req2;" Pour voir si ta requête est bonne.
    Montre nous ce que ça t'affiche.
    0
    1. dupont123
       
      echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
      0
  8. louloute300 Messages postés 347 Statut Membre 29
     
    $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
    0
    1. dupont123
       
      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)) {
      0
    2. louloute300 Messages postés 347 Statut Membre 29
       
      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...
      }
      }
      0
  9. dupont123
     
    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 :
    0
    1. Apatik Messages postés 6040 Statut Contributeur 789
       
      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! :)
      0
  10. dupont123
     
    oui mais alors quel est la solution ?
    0
    1. justoo76 Messages postés 203 Statut Membre 13
       
      As-tu essayé ce que je t'ai dit ?
      0
    2. dupont123
       
      oui mais meme resultat
      0
  11. Apatik Messages postés 6040 Statut Contributeur 789
     
    Colle nous ton code, tu as une erreur dedans qui fait que un "echo" s'intègre a ta requête ;)
    0
  12. dupont123
     
    <?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>');

    ?>
    0
  13. Apatik Messages postés 6040 Statut Contributeur 789
     
    C'est quoi ça? => ecr('echo $req2');
    Remplace par echo $req2;
    0
  14. dupont123
     
    ok c'est bon sa marche
    merci a tous ceux qui m'ont aider
    0