Les Allergies
Alimentaires
Posez votre question Signaler

Requete php mysql [Résolu]

dupont123 189Messages postés 15 novembre 2009Date d'inscription 8 septembre 2011Dernière intervention - Dernière réponse le 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');
}
}
}
Lire la suite 

Requete php mysql »

23 réponses
Réponse
+1
moins plus
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');
   }
      
}
 
dupont123- 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
Apatik- 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
Gado - 10 juin 2010 à 15:20
Ouais en effet, j'ai oublié de le mettre quand j'ai viré le while... ^^"
Ajouter un commentaire
Réponse
+0
moins plus
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.
dupont123- 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
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Essaye de mettre ta variable de session dans une variable simple, puis mettre cette dernière dans ta requete SQL
Ajouter un commentaire
Réponse
+0
moins plus
if ($data = 0) {

à remplacer par:

if ($data == 0) {
Ajouter un commentaire
Réponse
+0
moins plus
salut
j'ai toujours comme réponse
Resource id #11
Ajouter un commentaire
Réponse
+0
moins plus
Fait un "echo $req2;" Pour voir si ta requête est bonne.
Montre nous ce que ça t'affiche.
dupont123- 9 juin 2010 à 14:39
echo SELECT DroitUtil FROM utilisateur WHERE NomUtil = "dupont";
Ajouter un commentaire
Réponse
+0
moins plus
$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
dupont123- 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)) {
louloute300- 9 juin 2010 à 17:21
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...
}
}
Ajouter un commentaire
Réponse
+0
moins plus
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 :
Apatik- 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! :)
Ajouter un commentaire
Réponse
+0
moins plus
oui mais alors quel est la solution ?
justoo76- 10 juin 2010 à 10:09
As-tu essayé ce que je t'ai dit ?
dupont123- 10 juin 2010 à 13:47
oui mais meme resultat
Ajouter un commentaire
Réponse
+0
moins plus
Colle nous ton code, tu as une erreur dedans qui fait que un "echo" s'intègre a ta requête ;)
Ajouter un commentaire
Réponse
+0
moins plus
<?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>');


?>
Ajouter un commentaire
Réponse
+0
moins plus
C'est quoi ça? => ecr('echo $req2');
Remplace par echo $req2;
Ajouter un commentaire
Réponse
+0
moins plus
ok c'est bon sa marche
merci a tous ceux qui m'ont aider
Ajouter un commentaire
Ce document intitulé « requete php mysql » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?