Copier un résultat après query php

davidtennis
WRInaute discret
WRInaute discret
 
Messages: 55
Inscription: 5 Avr 2007

Copier un résultat après query php

Message le Sam Mai 05, 2007 7:03

Bonjour,

J'ai un fichier PHP dans lequel j'effectue une query :
$query = "SELECT .....";
$result = mysql_query($query,$connexion);

donc j'ai besoin deux fois. Je cherche une méthode pour pouvoir l'utiliser deux fois sans avoir à lancer deux fois la query.

Je l'utilise une première fois:
while($row=mysql_fetch_row($result)){
...
}

puis plus loin dans le code j'en ai besoin une deuxième fois.
Si je refais un $row=mysql_fetch_row($result) ça ne marchera pas. Il faudrait que je puisse copier $result dans un $result2 que j'utiliserai plus tard.
Biensûr $result2=$result; ne fonctionne pas. Mais existe-t-il une fonction PHP permettant de "copier" un résultat ?

Merci


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18833
Inscription: 8 Aoû 2004

Message le Sam Mai 05, 2007 7:37

il suffit de faire un reset du résultat


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Sam Mai 05, 2007 8:12

Code: Tout sélectionner
reset($result);
précisément ;)

davidtennis
WRInaute discret
WRInaute discret
 
Messages: 55
Inscription: 5 Avr 2007

Message le Sam Mai 05, 2007 8:15

Si je fais ça, je me retrouve avec un:
Warning: reset() [function.reset]: Passed variable is not an array or object in...


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18833
Inscription: 8 Aoû 2004

Message le Sam Mai 05, 2007 8:35

davidtennis a écrit:Si je fais ça, je me retrouve avec un:
Warning: reset() [function.reset]: Passed variable is not an array or object in...
parce que, en fait, c'est
Code: Tout sélectionner
reset($row);
qu'il faut faire


Bh@Mp0
WRInaute discret
WRInaute discret
 
Messages: 245
Inscription: 18 Jan 2005

Message le Sam Mai 05, 2007 9:57

Hum ... soit j'ai pas lu la même question que vous, soit je suis mal réveillé.
Pour moi, ce qu'il cherche, c'est à "remettre les compteurs à zéro", et pour ça, il existe mysql_data_seek().


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18833
Inscription: 8 Aoû 2004

Message le Sam Mai 05, 2007 11:13

le reset($row) permet de revenir au tout début des résultats, comme si on avait réeffectué le mysql_fetch_row()


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Lun Mai 07, 2007 17:03

J'ai recemment pu tester reset() et mysql_data_seek()

mysql_data_seek() est bien fait pour un résultat retourné par une requête.

reset() est seulement utilisé pour les tableaux contenant plusieurs lignes. Donc, a ne pas utiliser avec un mysql_fetch_array puisqu'il ne renvoie qu'un tableau correspondant à une certaine ligne d'un résultat de requête.

Donc dans ce cas, mysql_data_seek() ! ;)


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18833
Inscription: 8 Aoû 2004

Message le Lun Mai 07, 2007 17:22

YoyoS a écrit:reset() est seulement utilisé pour les tableaux contenant plusieurs lignes. Donc, a ne pas utiliser avec un mysql_fetch_array puisqu'il ne renvoie qu'un tableau correspondant à une certaine ligne d'un résultat de requête.
Effectivement, j'avais mal regardé le script :oops:
Il faut l'utiliser avec $row = mysql_fetch_assoc($mysql_result); et là c'est ok


Bh@Mp0
WRInaute discret
WRInaute discret
 
Messages: 245
Inscription: 18 Jan 2005

Message le Lun Mai 07, 2007 18:11

Ah ah, je jubile !
Bref, tout le monde peut se tromper :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités