Requete php mysql

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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');
}
}
}




A voir également:

13 réponses

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
Utilisateur anonyme
 
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
Apatik Messages postés 6040 Statut Contributeur 782
 
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
Gado
 
Ouais en effet, j'ai oublié de le mettre quand j'ai viré le while... ^^"
0
Apatik Messages postés 6040 Statut Contributeur 782
 
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
Utilisateur anonyme
 
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
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
louloute300 Messages postés 347 Statut Membre 29
 
if ($data = 0) {

à remplacer par:

if ($data == 0) {
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
salut
j'ai toujours comme réponse
Resource id #11
0
Apatik Messages postés 6040 Statut Contributeur 782
 
Fait un "echo $req2;" Pour voir si ta requête est bonne.
Montre nous ce que ça t'affiche.
0
Utilisateur anonyme
 
echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
0
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
Utilisateur anonyme
 
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
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
Utilisateur anonyme
 
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
Apatik Messages postés 6040 Statut Contributeur 782
 
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
Utilisateur anonyme
 
oui mais alors quel est la solution ?
0
justoo76 Messages postés 203 Statut Membre 13
 
As-tu essayé ce que je t'ai dit ?
0
Utilisateur anonyme
 
oui mais meme resultat
0
Apatik Messages postés 6040 Statut Contributeur 782
 
Colle nous ton code, tu as une erreur dedans qui fait que un "echo" s'intègre a ta requête ;)
0
Utilisateur anonyme
 
<?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
Apatik Messages postés 6040 Statut Contributeur 782
 
C'est quoi ça? => ecr('echo $req2');
Remplace par echo $req2;
0
Utilisateur anonyme
 
ok c'est bon sa marche
merci a tous ceux qui m'ont aider
0