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

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Problème de requête et mysql_num_rows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Problème de requête et mysql_num_rows

n°1908803
rahan44
enfant des ages farouches
Posté le 27-07-2009 à 10:49:48  profilanswer
 

Bonjour à tous,
 
Voilà, j'ai un petit souci que j'ai du mal à comprendre.
 
J'ai une requête toute simple qui est la suivante :
 
$requete  = 'SELECT AUTORISATION, ETAT, ID_USER, STATUT FROM '.$table1.' ';
$requete .= 'WHERE LOGIN = \''.mysql_escape($login).'\' AND PASSWORD = \''.$pass.'\' ';
 
$table1 est définie dans mon fichier de configuration, $login et $pass sont les valeurs de champs que je post.
 
Lorsque j'effectue cette requête, le mysql_num_rows ne passe pas et j'ai le droit à cette erreur à priori assez commune qui est : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource.
 
Bon jusqu'ici ok. Sauf que, quand j'affiche la requête et que je la copie dans mon phpMyAdmin, il me renvoie bien le résultat...et le mysql_error sur l'erreur provoquée me renvoie une chaîne vide...
 
Auriez-vous une petite idée sur ce qui cause ce problème?
 
Merci d'avance :)


Message édité par rahan44 le 27-07-2009 à 13:07:04
mood
Publicité
Posté le 27-07-2009 à 10:49:48  profilanswer
 

n°1908814
Pascal le ​nain
Posté le 27-07-2009 à 11:12:13  profilanswer
 

Déjà ta requete est déclarée bizarrement. Il est inutile de concaténer des espaces...  
Ensuite si tu veux séparer le select et le where, tu peux très bien passer à la ligne sans casser ta chaine.
 

$requete  = 'SELECT AUTORISATION, ETAT, ID_USER, STATUT FROM '.$table1.'
            WHERE LOGIN = \''.mysql_escape($login).'\' AND PASSWORD = \''.$pass;


Si tu l'affiche et que ca fonctionne quand tu la copies/colles, c'est que soit:
1- l'erreur vient du mysql_escape()
2- l'erreur est masquée par l'interprétation de ton navigateur html. Essaye de copier-coller le code lui-même.
 
Peux-tu nous montrer la requete générée par php ?


Message édité par Pascal le nain le 27-07-2009 à 11:13:08
n°1908815
FlorentG
Unité de Masse
Posté le 27-07-2009 à 11:12:44  profilanswer
 

J'espère que tu ne fais pas directement le mysql_num_rows sur $requete, oublie pas qu'il faut l'exécuter :

Code :
  1. $result = mysql_query($requete);
  2. if(!$result) {
  3.  throw new Exception(mysql_error());
  4. }
  5.  

n°1908822
rahan44
enfant des ages farouches
Posté le 27-07-2009 à 11:21:49  profilanswer
 

Pour FlorentG, non je fais bien mon $resultat = mysql_query($requete,$connexion) avec ensuite mon mysql_num_rows sur $resultat.
 
Pour Pascal le nain, mon mysql_escape est une petite fonction qui protège ma variable avec un mysql_real_escape_string et un stripslashes avant si besoin.
 
Voilà l'echo de la requête obtenu :
 
SELECT AUTORISATION, ETAT, ID_USER, STATUT FROM USER WHERE LOGIN = 'rahan44' AND PASSWORD = '31e06d85039d7e260628fbc26c39e717'  
 
Merci d'essayer de m'aider en tout cas ;-)


Message édité par rahan44 le 27-07-2009 à 11:22:13
n°1908825
Pascal le ​nain
Posté le 27-07-2009 à 11:28:39  profilanswer
 

Tu as regardé dans le code source ?
Si dans le code source, la requete contient un \' ton navigateur va afficher ' mais mysql va bloquer sur le \

n°1908848
rahan44
enfant des ages farouches
Posté le 27-07-2009 à 11:40:50  profilanswer
 

Et bien mon code source c'est celui posté tout en haut, et il n'y a pas de \' à part pour entourer les variables...
 
Le souci, c'est que mon navigateur affiche la requête, et que cette même requête me retourne bien un résultat quand je la copie/colle dans mon phpMyAdmin, mais me retourne une erreur via mon navigateur...et le mysql_error contient une chaîne vide...
 
C'est pour cela que je suis un peu perdu...

n°1908867
rahan44
enfant des ages farouches
Posté le 27-07-2009 à 12:02:30  profilanswer
 

Je vais manger mais je reste attentif à vos réponses dès mon retour !

n°1908869
Pascal le ​nain
Posté le 27-07-2009 à 12:03:52  profilanswer
 

Je parlais du code source de la page html renvoyée du serveur à ton navigateur. Dans firefox, Ctrl+U.
 
Peux-tu nous montrer ton code source (cette fois du php) depuis la requete jusqu'au mysql_num_rows ?

n°1908897
rahan44
enfant des ages farouches
Posté le 27-07-2009 à 13:02:01  profilanswer
 

Ah ok.
 
Voilà mon code php de ma requête au mysql_num_rows :
 
$requete  = 'SELECT AUTORISATION, ETAT, ID_USER, STATUT FROM USER  
                 WHERE LOGIN = \''.mysql_escape($login).'\' AND PASSWORD = \''.$pass.'\' ';
$resultat = mysql_query($requete,$connexion);
 
if($resultat && mysql_num_rows($resultat)>0)
{
...
}

n°1908899
rahan44
enfant des ages farouches
Posté le 27-07-2009 à 13:06:33  profilanswer
 

Bon j'ai trouvé en fait.
 
J'ai modifié mon fichier de configuration il y a peu et il semblerait que j'ai tout bêtement effacé ma variable $connexion...
 
Ca marche beaucoup mieux maintenant...
 
J'ai honte...lol
 
Merci quand même de votre aide et à bientôt pour des problèmes plus sérieux !!!

mood
Publicité
Posté le 27-07-2009 à 13:06:33  profilanswer
 

n°1909132
stealth35
Posté le 27-07-2009 à 20:22:13  profilanswer
 

tu devrais faire comme ca, ca serai plus propre

Code :
  1. $login = mysql_real_escape_string($login);
  2. $pass = mysql_real_escape_string($pass);
  3. $request = "SELECT `autorisation`, `etat`, `id_user`, `status` FROM `user` WHERE `login`='$login' AND `password`='$pass'";
  4. $resultat = mysql_query($requete,$connexion) or die( echo mysql_error() );
  5. if(mysql_num_rows($resultat)){
  6. //
  7. }


 
mais bon pareil tout ca date de 10 ans,  si ta moyen utilise PDO, c'est pas plus compliquer mais c'est beaucoup plus propre, et plus securiser.
 
http://www.siteduzero.com/tutoriel [...] x-bdd.html
 
bon courage ;)
 
 
 


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

  [RESOLU] Problème de requête et mysql_num_rows

 

Sujets relatifs
Problème de crash sur codage aléatoireProblème d'upload de photos
Comment récupérer des données mysql dans un tableau horizontal?problème de modélisation MCD
Problème de formulaire: objet = [SPAM][Resolu][CSS] Div l'une à coté de l'autre
[VBA] Problème redimensionnement et positionnement de graphique[VBA Excel] garder la mise en forme dans une textbox [RESOLU]
problème évènement click[JPA/Hibernate] Mapper des Map
Plus de sujets relatifs à : [RESOLU] Problème de requête et mysql_num_rows


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