[Résolu] Exploiter 2 fois un résultat d'une requête

Exploiter 2 fois un résultat d'une requête [Résolu] - PHP - Programmation

Marsh Posté le 02-12-2004 à 10:30:05    

Bonjour,
 
Voilà je fais une requête et je voudrais l'exploiter 2 fois sans refaire la requête. Si je fais les 2 requête séparement ça fonctionne mais si je fais les 2 en même temps, ça ne fonctionne pas...
 
Voilà le code :

Code :
  1. $i=0;
  2. while($i<=$class->num_rows()) {
  3.  $row=$class->fetch_array();
  4.  $nbPlaceMaxi+=$row['nbplace'];
  5.  $i++;
  6. }
  7. while ($row=$class->fetch_array()) {
  8.  $chiffre=round($row['nbplace']*100/$nbPlaceMaxi, 1);
  9.  echo $chiffre." %<br />";
  10. }


J'ai essayé de réinitialiser le pointeur du tableau $row avec la fonction reset() mais j'ai une erreur..
 
Que faire alors ?  :jap:


Message édité par Surfoo le 03-12-2004 à 00:41:41
Reply

Marsh Posté le 02-12-2004 à 10:30:05   

Reply

Marsh Posté le 02-12-2004 à 13:28:27    

mysql_data_seek($row,0);


Message édité par Scarf3ss3 le 02-12-2004 à 13:28:40
Reply

Marsh Posté le 02-12-2004 à 18:29:46    

J'ai essayé avec le code en dessous, mais ça ne marche pas  
 

Code :
  1. $i=0;
  2. while($i!=$class->num_rows()) {
  3.  $row=$class->fetch_array();
  4.  $nbPlaceMaxi+=$row['nbplace'];
  5.  $class->data_seek($row, $i);
  6.  $i++;
  7. }
  8. echo $nbPlaceMaxi;
  9. while ($row=$class->fetch_array()) {
  10.  $chiffre=round($row['nbplace']*100/$nbPlaceMaxi, 1);
  11.  echo $chiffre." %<br />";
  12. }


et la fonction :

Code :
  1. function data_seek($row, $ligne) {
  2.  return mysql_data_seek($row, $ligne);
  3. }


 
et j'ai comme erreur :
 
Warning: mysql_data_seek(): supplied argument is not a valid MySQL result resource [...] (qui pointe sur : return mysql_data_seek($row, $ligne); )


Message édité par Surfoo le 02-12-2004 à 18:32:26
Reply

Marsh Posté le 02-12-2004 à 18:52:54    

le premier argument du mysql_data_seek doit être le dataset, pas une de ses lignes :)

Reply

Marsh Posté le 02-12-2004 à 19:19:30    

Qu'est ce que tu appelles le dataset ?  
 
La ligne que m'as donné scarf3ss3, est fausse alors ?  
j'ai regardé la doc sur Nexen pourtant...

Reply

Marsh Posté le 02-12-2004 à 19:27:36    

Non, la ligne est bonne, c'est la variable qu'il utilise qui est fausse. Quand au dataset, c'est ce qui est retourné par un mysql_query.

Reply

Marsh Posté le 02-12-2004 à 22:14:56    

Oui effectivement naceroth tu as raison mais bon faudrait avoir sa class pour dire quel variable mettre...


Message édité par Scarf3ss3 le 02-12-2004 à 22:15:12
Reply

Marsh Posté le 02-12-2004 à 23:55:08    

scarf3ss3 a écrit :

Oui effectivement naceroth tu as raison mais bon faudrait avoir sa class pour dire quel variable mettre...


 
Tout à fait, c'est un peu pour ça que j'avais pas précisé dans ma réponse :D
 
La seule certitude au vue de l'emploi qu'il en fait, c'est que ce n'est pas $row :)

Reply

Marsh Posté le 03-12-2004 à 00:17:41    

Merci, j'ai trouvé grâce à vous.
 
j'ai mis :

Code :
  1. function data_seek($ligne) {
  2. return mysql_data_seek($this->resultat, $ligne);
  3. }


et  

Code :
  1. $class->data_seek(0);

Reply

Marsh Posté le 03-12-2004 à 05:02:33    

Surfoo elle est surement bien ta class pour tes requetes mais essaye plutot de comprendre avant, tout ce qu'il y a dedans pour que tu saches ce que tu fais...

Reply

Marsh Posté le 03-12-2004 à 05:02:33   

Reply

Marsh Posté le 03-12-2004 à 13:22:06    

C'est moi qui ai écrit la class, c'est juste que je ne savais pas comment utiliser la fonction mysql_data_seek

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed