[résolu]Probleme PHP/Mysql bizzarre

Probleme PHP/Mysql bizzarre [résolu] - PHP - Programmation

Marsh Posté le 12-08-2005 à 18:25:32    

Les martiens sont parmis nous.  :ouch:  
 
 Non plus sérieusement je fais des requetes mysql sur mon site qui a 2 variables pres sont toujours les memes. L'idée d'une fonction m'est venu afin de simplifier le code. Mal m'en a pris j'ai une erreur bizzare :
 
J'utilisais donc cela pour faire ma requete :

Code :
  1. $requete = "SELECT $language
  2.             FROM words
  3.             WHERE words.Id=1";
  4. $w1 = exec_requete ($requete, $Id_Connect);
  5. $w1 = mysql_fetch_array($w1);
  6. $w1 = $w1["$language"];


(en utilisant ce code la requete marche.
 
j'ai donc fait cette fonction :
 

Code :
  1. function get_word($nb,$language)
  2.     {
  3.       $requete = "SELECT $language
  4.                   FROM words
  5.                   WHERE Id=$nb";
  6.         $temp = exec_requete ($requete, $Id_Connect);
  7.         $temp = mysql_fetch_array($temp);
  8.         $temp = $temp["$language"];
  9.         return $temp;
  10.     }


il me restait plus qu'a faire un appel de fonction comme cela pour arriver au meme resultat qu'au dessus et plus qu'a changer le nombre pour chopper un autre Id :

Code :
  1. $w1 = get_word(1,$language);
  2. $w2 = get_word(2,$language);


 
en faisant l'appel de fonction je me retrouve avec une erreur :

Citation :

Erreur dans l'exécution de SELECT English FROM words WHERE Id=1 Message de MySql :


Mon gros probleme est que la requete mysql est bonne.
 
Ma fonction exec_requete :

Code :
  1. function exec_requete($Req, $Connect)
  2.   {
  3.     // Exécution de la requête :
  4.       $Res = mysql_query ($Req, $Connect);
  5.       // Teste si l'exécution s'est mal passée :
  6.       if (!$Res) { // Execution KO
  7. echo "<B>Erreur dans l'exécution de $Req </B>\n" . "Message de MySql : " . mysql_error ($Connect) . "\n";
  8. exit;
  9.       }


 
Vous voyez l'erreur ?  
 
Dans tous les cas merci beaucoup d'avoir passé du temp sur mon probleme et merci d'avance pour vos éventuelles réponses.


Message édité par Demon N1 le 13-08-2005 à 21:05:40
Reply

Marsh Posté le 12-08-2005 à 18:25:32   

Reply

Marsh Posté le 12-08-2005 à 21:41:01    

Si ça marchait avec


                  WHERE words.Id=$nb";  


alors pourquoi essayer


                  WHERE Id=$nb";  


?

Reply

Marsh Posté le 13-08-2005 à 00:15:49    

Peut être ajouter ca dans la fonction get_word() :
 
function get_word($nb,$language)  
    {
    global $Id_Connect;
    $requete = ...
 [:figti]

Reply

Marsh Posté le 13-08-2005 à 12:25:07    

Code :
  1. $w1 = $w1["$language"];


 :??:  
 
pourquoi pas plutôt

Code :
  1. $w1 = $w1[$language];


 
(euh...d'ailleurs..$w1 = $w1[]...bah, voilà quoi, c'est bizare, non ?)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 13-08-2005 à 21:04:56    

Merci à tous pour vos réponses !!!!!

olivthill a écrit :

Si ça marchait avec


                  WHERE words.Id=$nb";  


alors pourquoi essayer


                  WHERE Id=$nb";  


?


 
La requete ne se fait sur une seule table, le words. n'est donc pas nécéssaire.
 

mrbebert a écrit :

Peut être ajouter ca dans la fonction get_word() :
 
function get_word($nb,$language)  
    {
    global $Id_Connect;
    $requete = ...
 [:figti]


 
MERCI beaucoup ! Ca marche, j'ai pas trop compris pourquoi par contre :| MErci !
 

zapan666 a écrit :

Code :
  1. $w1 = $w1["$language"];


 :??:  
 
pourquoi pas plutôt

Code :
  1. $w1 = $w1[$language];


 
(euh...d'ailleurs..$w1 = $w1[]...bah, voilà quoi, c'est bizare, non ?)


 
Les 2 marchent mais  tu as raison c'est plus logique. Sinon oui c'est bizzare mais ca revient au meme d'utiliser une autre variable et j'ai déja assez de variables.
 
Merci ! Résolu :)
 
 

Reply

Marsh Posté le 13-08-2005 à 22:34:43    

Demon N1 a écrit :

...
MERCI beaucoup ! Ca marche, j'ai pas trop compris pourquoi par contre :| MErci !
...

:sol:  :sol:  :sol:  
 
PHP est un langage un peu particulier :whistle:  
Généralement, dans une fonction, si on veut utiliser une nouvelle variable (locale) ayant le même nom qu'une variable globale, on doit la déclarer explicitement. Sinon, c'est la variable globale qui est utilisée.
En PHP, eh ben c'est l'inverse :ouch:  
Si on dit rien, il utilise une nouvelle variable. Le terme "global" indique que l'on veut utiliser dans la fonction la variable globale ayant ce nom.


Message édité par mrbebert le 13-08-2005 à 22:35:25
Reply

Sujets relatifs:

Leave a Replay

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