Requete php mysql

Résolu/Fermé
Utilisateur anonyme - 9 juin 2010 à 10:24
 Utilisateur anonyme - 10 juin 2010 à 15:22
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

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
10 juin 2010 à 15:05
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 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 juin 2010 à 15:08
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
Ouais en effet, j'ai oublié de le mettre quand j'ai viré le while... ^^"
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
9 juin 2010 à 10:26
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
9 juin 2010 à 10:44
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 186 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 23 mars 2016 13
Modifié par justoo76 le 9/06/2010 à 10:33
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 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
9 juin 2010 à 11:58
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
9 juin 2010 à 13:41
salut
j'ai toujours comme réponse
Resource id #11
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
9 juin 2010 à 13:42
Fait un "echo $req2;" Pour voir si ta requête est bonne.
Montre nous ce que ça t'affiche.
0
Utilisateur anonyme
9 juin 2010 à 14:39
echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
Modifié par louloute300 le 9/06/2010 à 13:50
$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
9 juin 2010 à 14:42
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 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
Modifié par louloute300 le 9/06/2010 à 17:24
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
10 juin 2010 à 09:10
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 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 juin 2010 à 09:23
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
10 juin 2010 à 10:01
oui mais alors quel est la solution ?
0
justoo76 Messages postés 186 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 23 mars 2016 13
10 juin 2010 à 10:09
As-tu essayé ce que je t'ai dit ?
0
Utilisateur anonyme
10 juin 2010 à 13:47
oui mais meme resultat
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 juin 2010 à 10:24
Colle nous ton code, tu as une erreur dedans qui fait que un "echo" s'intègre a ta requête ;)
0
Utilisateur anonyme
10 juin 2010 à 13:49
<?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 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
10 juin 2010 à 13:57
C'est quoi ça? => ecr('echo $req2');
Remplace par echo $req2;
0
Utilisateur anonyme
10 juin 2010 à 15:22
ok c'est bon sa marche
merci a tous ceux qui m'ont aider
0