Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1806 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]Probleme PHP/Mysql bizzarre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]Probleme PHP/Mysql bizzarre

n°1175422
Demon N1
Posté le 12-08-2005 à 18:25:32  profilanswer
 

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
mood
Publicité
Posté le 12-08-2005 à 18:25:32  profilanswer
 

n°1175492
olivthill
Posté le 12-08-2005 à 21:41:01  profilanswer
 

Si ça marchait avec


                  WHERE words.Id=$nb";  


alors pourquoi essayer


                  WHERE Id=$nb";  


?

n°1175549
mrbebert
Posté le 13-08-2005 à 00:15:49  profilanswer
 

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

n°1175679
zapan666
Tout est relatif
Posté le 13-08-2005 à 12:25:07  profilanswer
 

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 !
n°1175828
Demon N1
Posté le 13-08-2005 à 21:04:56  profilanswer
 

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 :)
 
 

n°1175846
mrbebert
Posté le 13-08-2005 à 22:34:43  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]Probleme PHP/Mysql bizzarre

 

Sujets relatifs
[RESOLU] 2 submit pour un formComparer deux tables sous Mysql
[RESOLU][MYSQL] Besoin d'aide pour une requeteprobleme de Boucle avec une macro!!!!
[JS ou PHP] Interdire son site dans une frame[RESOLU] JNI et libnet
[MySQL]cardinalité 1,n -- 1,n et clé étrangereafficher son statut MSN [résolu]
Problème order by 
Plus de sujets relatifs à : [résolu]Probleme PHP/Mysql bizzarre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR