Réutiliser une requete acquise via mysql_query() ?

Répondre
burnedsoul
le 04/10/2007 à 17:52
burnedsoul
Bonjour à tous,
J'ai actuellement un petit souci concernant le cas suivant :

<?
$sql = mysql_query("select * from table");

// boucle while
while ($r=mysql_fetch_array($sql))
{
// code 1
}

while ($p = mysql_fetch_array($sql))
{
// code 2
}
?>


En fait le code 2 semble tout simplement bugger puisque je ne peux accéder au tableau $p, et je ne sais pas trop pourquoi.
J'ai testé mysql_free_result(), mais sans effet.
Quelqu'un à une solution sachant que je suis sous PHP4 ?
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 04/10/2007 à 17:53
burnedsoul
Oups, j'ai oublié un [/code] dans le post, désolé :s
Webmaster de Clikmag http://www.clikmag.fr
LA GLOBULE
le 04/10/2007 à 18:01
LA GLOBULE
J'en envie de dire que c'est normal que le second while n'affiche rien.

Si tu veux parcourir deux fois la liste des résultats, tu dois d'abord stocker les rows dans un tableau.

Exemple :

<?  php
$sql = mysql_query("select * from table");
$data = array();

while ($r=mysql_fetch_array($sql))
{
// on stocke dans un tableau
$data[] = $r;
}

$nb_elements = count($data);

for ($i=0; $i<$nb_elements; $i++) {
// boucle 1
print_r($data[$i]);
}

for ($i=0; $i<$nb_elements; $i++) {
// boucle 2
print_r($data[$i]);
}
?>
mojorisin
le 05/10/2007 à 13:18
mojorisin
Ou plutot que de stocker dasn un tableau lire la doc sur mysql_data_seek() :)
<?php
$result = mysql_query($sql);
while ($r=mysql_fetch_array($result)) {
...
}
...
mysql_data_seek($result,0);
while ($r=mysql_fetch_array($result)) {
...
}
?>
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours