[PHP-MYSQL]Manipuler une ressource MySQL

Résolu/Fermé
xbb Messages postés 49 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 10 mai 2007 - 20 oct. 2006 à 14:08
pularkio Messages postés 9 Date d'inscription lundi 1 avril 2013 Statut Membre Dernière intervention 1 avril 2013 - 1 avril 2013 à 19:59
Bonjour à tous.
Je suis administrateur d'un très gros site + grosse base de données en intranet.

De ce fait, les requêtes sql engendrent des temps de chargement très longs.
C'est pourquoi j'aimerais trouver un moyen de ne faire qu'une seule grosse requête, et ensuite manipuler plusieurs fois la ressource mysql obtenue (ce qu'on appelle par convention $result ou bien $recordset).

J'aimerais pouvoir parcourir plusieurs fois mon $result, pour traiter différents champs à chaque passage. Mais une fois la premiere série de fetch_assoc() terminée, je ne sais pas comment revenir à la premiere ligne!!

S'il s'agissait d'un array, je pourrais faire un reset($mon Array)...

Quelqu'un connait-il une fonction similaire pour les résultats de requête mysql?


Merci d'avance !

Edit : la ressource dont je parle est de type "mysql result"

2 réponses

xbb Messages postés 49 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 10 mai 2007 1
20 oct. 2006 à 15:07
J'ai trouvé la réponse tout seul !!!

c'est la fonction mysql_data_seek($result, indice)

En l'occurence je dois faire mysql_data_seek($result, 0)


https://www.php.net/manual/fr/function.mysql-data-seek.php
1
pularkio Messages postés 9 Date d'inscription lundi 1 avril 2013 Statut Membre Dernière intervention 1 avril 2013
1 avril 2013 à 19:59
C'est pas très propre comme solution, le mieux c'est de stocker le résultat du fetch dans un array, et ensuite de parcourir le tableau autant de fois que nécessaire.

A part si il y a vraiment beaucoup de résultats et que le tableau occupe trop de place en mémoire.

http://www.finalclap.com/faq/mysql/
0