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

  FORUM HardWare.fr
  Programmation
  PHP

  Requéte demi-merdique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requéte demi-merdique

n°1706595
Galdon
Posté le 22-03-2008 à 16:55:25  profilanswer
 

Bonjour, ca doit bien faire 1 heure que j'a m'arrache les cheveux sur un problème : quand je vais dans phpmyadmin et que je tape cette requête :
 
SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip='127.0.0.1'
 
Ca me retourne le bon résultat, mais quand cette même requéte est appelée dans un script php :
 

Code :
  1. $ip=$_SERVER['REMOTE_ADDR'];
  2. $req = "SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip='$ip'";
  3. $req = db::query($req);
  4. $donnees = mysql_fetch_array($req);


 
J'ai cette erreur :

Citation :

Erreur de syntaxe près de '\'127.0.0.1\'' à la ligne 1


 
Et c'est pas ma fonction db::query qui fait ca, quand j'utilise mysql_query ca fait pareil
 
J'y comprends rien, ca me prend la tête.
 
Merci de votre aide


---------------
cours pour débuter sous 3d studio max - Photoshop pour les nuls
mood
Publicité
Posté le 22-03-2008 à 16:55:25  profilanswer
 

n°1706607
Kyfun
Les choses se passent !
Posté le 22-03-2008 à 17:48:30  profilanswer
 

Code :
  1. $req = "SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip=$ip";


 
Et ça ?


---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
n°1706674
Profil sup​primé
Posté le 23-03-2008 à 01:48:35  answer
 

Kyfun a écrit :

Code :
  1. $req = "SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip=$ip";


Et ça ?


ca risque de marcher encore moins ...depuis quand on entoure pas les chaines avec des ' ?

Citation :

 
Erreur de syntaxe près de '\'127.0.0.1\'' à la ligne 1


des antislashes+ des quotes semblent ajoutés sans ta demande...
cherche de ce coté là (probleme de conf php, magic_quote_runtime peut etre)

Message cité 1 fois
Message édité par Profil supprimé le 23-03-2008 à 01:48:58
n°1707571
Kyfun
Les choses se passent !
Posté le 25-03-2008 à 18:53:14  profilanswer
 

 
Depuis quand y'a des ' ' automatiquement dans ces chaines ? ^^


Message édité par Kyfun le 25-03-2008 à 18:53:26

---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
n°1708477
Fused
Posté le 27-03-2008 à 00:28:49  profilanswer
 

Ca fonctionnera mieux comme ça ...
 

Code :
  1. $req = 'SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip='.$ip.'';


Mon expérience te dis d'éviter les simples cotes pour le PHP, et n'oublie pas de concaténer tes variables avec des points comme ici.
 
Edit: et d'ailleurs, cette requête ne sert pas trop, si tu comptes les connectés avec une IP fixe, tu as de forte de chance d'obtenir 0 ou 1 comme résultat... ça peut servir, mais à quoi ?

Message cité 1 fois
Message édité par Fused le 27-03-2008 à 00:31:15
n°1708557
weed
Posté le 27-03-2008 à 10:43:47  profilanswer
 

Fused a écrit :

Ca fonctionnera mieux comme ça ...
 

Code :
  1. $req = 'SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip='.$ip.'';


Mon expérience te dis d'éviter les simples cotes pour le PHP, et n'oublie pas de concaténer tes variables avec des points comme ici.
 
Edit: et d'ailleurs, cette requête ne sert pas trop, si tu comptes les connectés avec une IP fixe, tu as de forte de chance d'obtenir 0 ou 1 comme résultat... ça peut servir, mais à quoi ?


 
 
Au contraire, je dirais qu'il vaut mieux utiliser des simples quotes. Avec des simples quotes les variables ne sont pas interprétés donc légèrement plus rapide.
si ip était une variable ton code serait presque bon mais ip est une chaine de caractère, il faut donc les mettre entre quote.
 

Code :
  1. $req = 'SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip=\'' .$ip. '\'  ';


 
si ip étais un nombre, on aurait pu l'écrire :

Code :
  1. $req = 'SELECT COUNT(*) AS nb_entrees FROM connectes WHERE ip=' .$ip;

n°1708693
Fused
Posté le 27-03-2008 à 13:33:36  profilanswer
 

Oui c'est ce que je voulais dire, éviter les doubles cotes, mon exemple le montre, lapsus !

n°1708700
weed
Posté le 27-03-2008 à 13:50:11  profilanswer
 

Oki, je comprends, c'est vrai qu'en mettant 2 simples cotes de suite, on a l'impression d'avoir une double cote. C'est ce que tu voulais dire.
 
 
PS : Fused, merci pour l'orthographe de cotes. Je l'ecrivais toujours avec "qu", cet orthographe est aussi correct mais c'est en anglais. cotes avec un C est l'orthographe francaise.

n°1708739
Fused
Posté le 27-03-2008 à 14:47:32  profilanswer
 

De rien ;-)


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

  Requéte demi-merdique

 

Sujets relatifs
[Builder 6]récpere le résultat d'une requête SQL d'un composant TQueryPb requete sql avec MySQL 4.0.25
Requete a modifier pour optimiser(débutant) mise en page requete SQL.
Requête SQLerreur 3664 pour une requete sql avec la fonction openrecordset
Help pour requête SQLrequete sql
C# -- Problème d'éxécution de requête sur la base SQL server[RESOLU] aide pour une requête toute simple
Plus de sujets relatifs à : Requéte demi-merdique


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