Problème de requête et mysql_num_rows [RESOLU] - PHP - Programmation
Marsh Posté le 27-07-2009 à 11:12:13
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.' |
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 ?
Marsh Posté le 27-07-2009 à 11:12:44
J'espère que tu ne fais pas directement le mysql_num_rows sur $requete, oublie pas qu'il faut l'exécuter :
Code :
|
Marsh Posté le 27-07-2009 à 11:21:49
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 ;-)
Marsh Posté le 27-07-2009 à 11:28:39
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 \
Marsh Posté le 27-07-2009 à 11:40:50
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...
Marsh Posté le 27-07-2009 à 12:02:30
Je vais manger mais je reste attentif à vos réponses dès mon retour !
Marsh Posté le 27-07-2009 à 12:03:52
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 ?
Marsh Posté le 27-07-2009 à 13:02:01
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)
{
...
}
Marsh Posté le 27-07-2009 à 13:06:33
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 !!!
Marsh Posté le 27-07-2009 à 20:22:13
tu devrais faire comme ca, ca serai plus propre
Code :
|
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
Marsh Posté le 27-07-2009 à 10:49:48
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