P'tit problème de parse_error

P'tit problème de parse_error - PHP - Programmation

Marsh Posté le 14-08-2006 à 15:17:47    

Salut,
 
J'ai un p'tit problème de Parse Error avec ce script. J'essaie depuis plusieurs heures de résoudre ce problème mais j'y arrive pas (je vous cache pas que je suis débutant  :whistle: ...). Le parse error est sur cette ligne:

Code :
  1. $requete = mysql_query('SELECT membre FROM colonne1 WHERE "'.$variable.'"') or die(mysql_error());


Voici le code en entier:
 

Code :
  1. <?php
  2. if (isset($_GET['membre']))
  3. {
  4.                 mysql_connect("localhost", "root", "" );
  5.                 mysql_select_db("bdd" );
  6.                
  7.    $variable = 'membre="'.$_GET['membre'].'"'
  8.       $requete = mysql_query('SELECT membre FROM colonne1 WHERE "'.$variable.'"') or die(mysql_error());
  9.              
  10.                 while ($reponse = mysql_fetch_array ($requete) )
  11.                 {
  12.                 ?>
  13.  
  14.                 <?php echo ($reponse['membre']); ?>
  15.                 <?php
  16.                 }
  17.         mysql_close();
  18.                 }
  19.    ?>


Pouvez vous m'aider?

Reply

Marsh Posté le 14-08-2006 à 15:17:47   

Reply

Marsh Posté le 14-08-2006 à 15:24:07    

Ta requête est incomplète.
 

Code :
  1. $requete = mysql_query('SELECT membre FROM colonne1 WHERE NOMDUCHAMP = "'.$variable.'"') or die(mysql_error());


 
Voila ce que tu devrais avoir, pour l'instant, c'est un non sens pour mysql, tu le fais rechercher, mais il ne sait pas dans quel champ.
 
Par convention, et parce que ça ne mange pas de pain, tu devrais selectionner tous les champs, cela permet plus de souplesse. A savoir un code du type  
 

Code :
  1. $requete = mysql_query('SELECT * FROM colonne1 WHERE NOMDUCHAMP = "'.$variable.'"') or die(mysql_error());


 
Colonne1 doit donc être le nom de la table que tu selectionnes.

Message cité 1 fois
Message édité par Lootro le 14-08-2006 à 15:27:43
Reply

Marsh Posté le 14-08-2006 à 15:31:33    

Oui mais non, je voudrais que le nom du champs soit contenu dans $variable que je met ensuite dans ma requete. Est ce que c'est possible ou pas?

Reply

Marsh Posté le 14-08-2006 à 15:37:40    

Totalement, à ce moment, tu as quelque chose du type  
 

Code :
  1. $requete = mysql_query('SELECT * FROM colonne1 WHERE '.$variable.' = "'.$requete.'"') or die(mysql_error());


 
$variable sera le nom du champ
$requete l'occurence recherchée

Reply

Marsh Posté le 14-08-2006 à 15:40:47    

sinon l'erreur c'est qu'il manque ; à la fin de la ligne précédente ;)


Message édité par Sh@rdar le 14-08-2006 à 15:40:55

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 14-08-2006 à 16:06:33    

Bien vu pour le ; merci!
 
Mais maintenant quand je fais Envoyer j'obtient ça:
 

Code :
  1. Erreur de syntaxe près de 'Dupont""' à la ligne 1

 
 :??:  Que faire?

Reply

Marsh Posté le 14-08-2006 à 16:07:58    

Lootro a écrit :

Par convention, et parce que ça ne mange pas de pain, tu devrais selectionner tous les champs, cela permet plus de souplesse.


 
ah ?

Reply

Marsh Posté le 14-08-2006 à 16:18:58    

Citation :

Par convention, et parce que ça ne mange pas de pain, tu devrais selectionner tous les champs, cela permet plus de souplesse. A savoir un code du type  


 
C'est du grand n'importe quoi là.
 
J'aimerais connaitre ta convention. Ceci est l'erreur à ne pas faire, je comprends pas que tu puisses parler de convention.
C'est plus rapide à taper ok, mais ça va sélectionner plein de champs inutiles. Au moins en tapant ce qu'il a besoin, il sait ce qu'il aura, sans utiliser de gaspiller de mémoire en stockant les attributs inutiles.
Même s'il avait besoin de tous les attributs de la table actuelle, il est préférable de tous les lister, dans l'optique d'une possible modification à venir qui rajouterait des champs, qui ne seraient pas utiles à sa requête.


Message édité par DarkHope le 14-08-2006 à 16:20:16
Reply

Marsh Posté le 14-08-2006 à 16:21:32    

Je parle de convention parce que je n'ai jamais vu dans tous les scripts qu'il m'a été donné de voir, quelqu'un coder en mettant 10 champs à la suite, et je code depuis cinq ans.

Message cité 1 fois
Message édité par Lootro le 14-08-2006 à 16:22:41
Reply

Marsh Posté le 14-08-2006 à 16:24:50    

Lootro a écrit :

Je parle de convention parce que je n'ai jamais vu dans tous les scripts qu'il m'a été donné de voir, quelqu'un coder en mettant 10 champs à la suite, et je code depuis cinq ans.


 
c est pas ce qui fait une convention  :sweat:  

Reply

Marsh Posté le 14-08-2006 à 16:24:50   

Reply

Marsh Posté le 14-08-2006 à 16:28:47    

La guerre des étoiles
Je préfère cette convention.
 
dh, qui ne code en php qu'occasionnellement et que depuis environ 2 ans.


Message édité par DarkHope le 14-08-2006 à 16:30:03
Reply

Marsh Posté le 14-08-2006 à 16:39:09    

Ce n'est pas l'expérience qui fait de moi un meilleur codeur que toi. Je fais mon méa culpa pour l'étoile, donc, j'y prendrais plus garde à l'avenir.

Reply

Marsh Posté le 14-08-2006 à 16:54:29    

;)
Sinon une autre erreur que je viens de voir, tout seul, dans le code:

Code :
  1. $variable = 'membre="'.$_GET['membre'].'"'
  2. $requete = mysql_query('SELECT membre FROM colonne1 WHERE "'.$variable.'"') or die(mysql_error());


 
J'suis pas sûr que ta requête fonctionne. Quand tu mets un WHERE, le nom de l'attribut n'a pas besoin d'être entre quotes, sinon il va être considéré comme du texte (or le texte 'membre' est différent du texte  'Adrien') donc ta requête deviendrait:  

Code :
  1. $variable = 'membre="'.$_GET['membre'].'"';
  2. $requete = mysql_query('SELECT membre FROM colonne1 WHERE '.$variable.') or die(mysql_error());


Message édité par DarkHope le 14-08-2006 à 17:05:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed