Page 1 of 1

Problème avec mysql_num_rows

PostPosted: Fri Feb 03, 2012 12:01 pm
by SHEPSHEP
Bonjour,

Tout d'abord ça marchait avant et aujourd'hui on me remonte un problème alors qu'il n'y a pas eu de modif de code.

En faire je requête ma BD et récupère environ 132000 lignes, la requête est simplissime :

SELECT * FROM commandes

Lorsque je j'utilise mysql_num_rows pour compter le nombre de lignes, j'ai un "Warning mysql_num_rows() ...."

Pour l'instant j'ai fait une seconde requête pour récupérer le nombre de ligne.
SELECT COUNT(*) FROM commandes

Quelqu'un aurait une idée parce la c'est bizarre que même.

En plus j'ai l'impression que PMA perd les pédales aussi, plus de pagination, plus affichage nombre de ligne (pour cette table). Surement lié car c'est deux outils/infos utilisent surement mysql_num_rows()

++
2ShEp

PostPosted: Fri Feb 03, 2012 12:07 pm
by TorTukiTu
Est-ce que tu peux donner l'erreur complète ?

Quand tu fais ton select *, il est possible que tu remplisses un array de 13.000 éléments...

C'est moche.

Tu as essayé d'augmenter la mémoire maximum disponible dans ton php.ini ?

Tortue 974.

PostPosted: Fri Feb 03, 2012 4:36 pm
by SHEPSHEP
Merci Tortu

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /blabla/blabla/blabla/html/commandes.php on line 98

Non quand même pas ^^ (et c'est pas 13.000, c'est 132.000)
La requête sert uniquement à connaitre le nombre d'entrée et faisant un mysql_num_rows() sur le résultat (oui c'est idiot, c'est pas de moi je précise).

Pour la mémoire, j'ai vérifié, je suis bien en dessous de la limite.

Comprend pas ...

PostPosted: Fri Feb 03, 2012 8:15 pm
by Sliim
Salut,

d'après le message l'erreur se situe plus haut, lors du mysql_query("SELECT * FROM commands"); probablement.

Test la valeur de retour de mysql_query();

++
[u:9c0ae7aaf8]Sliim[/u:9c0ae7aaf8]

PostPosted: Sat Feb 04, 2012 10:40 am
by TorTukiTu
Alors suis du même avis que Sliim.

Affiche la requete avec un print coucou. Puis teste la dans un petit fichier php à part.

Et teste aussi avec le client MySQL en ligne de commande.

Tu seras fixé quand à l'emplacement du problème.

Tortue 974.

PS.: Fais attention à la casse (vérifies aussi que tu tapes bien sur la bonne db !). Si tu as "SELECT * FROM commands" dans php, et une table "Commands" dans mysql, la requête marchera sous les OS Window$ et pas sous les unix !

Tortue 974.

PostPosted: Tue Feb 07, 2012 4:17 pm
by SHEPSHEP
Bon je reviens avec mon bazar

Petite rectification importante, la requête est : "SELECT * FROM commande WHERE 1 AND 1 AND 1 ORDER BY commande.dat_cmd DESC, commande.heu_cmd DESC"

Valeur de retour de mysql_query() => (bool) false

Dans PMA la requête passe grâce à la clause "LIMIT 0,30" mais ca déconne au niveau du nombre d'enregistrements "0 - -1 (0 total, traitement: 0.3485 sec.) " alors que les résultats s'affiche bien ...

[quote:5917fe1ffc]Affichage des enregistrements 0 - -1 (0 total, traitement: 0.3485 sec.)
requête SQL: SELECT *
FROM commande
WHERE 1
AND 1
AND 1
ORDER BY commande.dat_cmd DESC , commande.heu_cmd DESC
LIMIT 0 , 30[/quote:5917fe1ffc]

[quote:5917fe1ffc="TorTukiTu"]Fais attention à la casse (vérifies aussi que tu tapes bien sur la bonne db !). Si tu as "SELECT * FROM commands" dans php, et une table "Commands" dans mysql, la requête marchera sous les OS Window$ et pas sous les unix ! [/quote:5917fe1ffc]
Merci pour l'info je ne savais pas, ça pourra peut être me servir ultérieurement.