Impossible de recuperer resultat d'un SELECT
apprenti-webmaster
-
apprenti-webmaster -
apprenti-webmaster -
Bonjour à tous,
je conçois une page php en me connectant à une BdD mysql.
lorsque je recupere les champs de la table en utilisant le code suivant :
tout semble bien marcher.
mais voila, quand il y a beaucoup de champs dans la table (en occurence: plusieurs dizaines de milliers - pres de 90 000 pour etre plus precis) l'erreur suivante est affiché:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 15 bytes) in /home/ . . . /pageweb.php on line 63
l'erreur persiste même quand j'utilise mysql_fecth_array($result) plutot!!
et la table doit contenir tous ces champs.
quelqu'un peut-il connaitre un moyen de resoudre ce probleme??
merci d'avance pour votre aide!
je conçois une page php en me connectant à une BdD mysql.
lorsque je recupere les champs de la table en utilisant le code suivant :
61 $result=mysql_query(" SELECT * FROM `table` ");
62 $row="toto";
63 while($row = mysql_fetch_row($result) )
64 {
tout semble bien marcher.
mais voila, quand il y a beaucoup de champs dans la table (en occurence: plusieurs dizaines de milliers - pres de 90 000 pour etre plus precis) l'erreur suivante est affiché:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 15 bytes) in /home/ . . . /pageweb.php on line 63
l'erreur persiste même quand j'utilise mysql_fecth_array($result) plutot!!
et la table doit contenir tous ces champs.
quelqu'un peut-il connaitre un moyen de resoudre ce probleme??
merci d'avance pour votre aide!
A voir également:
- Impossible de recuperer resultat d'un SELECT
- Comment recuperer un message supprimé sur whatsapp - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Impossible de récupérer mon compte gmail - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer mon compte facebook désactivé - Guide
1 réponse
Bonjour.
Comme le dit le message d'erreur, tu dépasses la limite de la mémoire allouée à php (32 Mo).
Solutions :
1. Augmenter la mémoire allouée à php.
Pas forcément évident : les fournisseurs de site la brident, et même sur un serveur dédié, il n'y a pas forcément beaucoup plus de mémoire disponible.
2. revoir tes procédures.
Rassure-moi, tu n'affiche pas tes 90 000 lignes sur une seule page ? Parce que si c'est le cas, tu dois obtenir un truc illisible.
Donc, limite le nombre d'enregistrements, soit en affinant la requête, soit en utilisant un système de pagination et le paramètres de requête LIMIT debut,nombre.
Comme le dit le message d'erreur, tu dépasses la limite de la mémoire allouée à php (32 Mo).
Solutions :
1. Augmenter la mémoire allouée à php.
Pas forcément évident : les fournisseurs de site la brident, et même sur un serveur dédié, il n'y a pas forcément beaucoup plus de mémoire disponible.
2. revoir tes procédures.
Rassure-moi, tu n'affiche pas tes 90 000 lignes sur une seule page ? Parce que si c'est le cas, tu dois obtenir un truc illisible.
Donc, limite le nombre d'enregistrements, soit en affinant la requête, soit en utilisant un système de pagination et le paramètres de requête LIMIT debut,nombre.
mais j'ai un maintenant un nouveau probleme: lorsque j'ecris le code suivant:
pour compter le nombre de lignes contenant la chaine indiquée, le message d'erreur suivant s'affiche:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/ . . . /pageweb.php on line 77
et le nombre n'est meme pas recuperé! j'espere que c'est pas trop demander!! merci encore d'avance pour toute aide!
Ce code d'erreur indique (dans 99% des cas) une requête SQL erronée.
Essaie avec
$result0=mysql_query($sql0) or die ("Erreur de requête :".$sqlI0."<br />".mysql_error());Au moins, ça devait te préciser où est l'erreur...
j'ai pu voir où l'erreur se trouvait, en fait il fallait que j'ecrive:
au lieu de:
encore mille fois merci!