IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

2 boucle while pour même mysql_fetch_array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut 2 boucle while pour même mysql_fetch_array
    Bonjour,

    Voici un apperçu du traitement que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $strSQL = "SELECT tags.label, tags.id, COUNT(lien_tag.tag_id) AS quantite 
    	FROM tags, lien_tag WHERE tags.id = lien_tag.tag_id 
    	GROUP BY tags.label 
    	ORDER BY quantity ASC LIMIT 25 ";
    $resultat = requete_SQL($strSQL);
     
     while ($row = mysql_fetch_array($resultat)) {
                $tags[$row['label']] = $row['quantite'];
            }
             $max = max(array_values($tags));
             $min = min(array_values($tags));
    	 $size = .....
    .....
    while ($row = mysql_fetch_array($resultat)) {
    		echo '<a href="mapage.php?tag='.$row['id'].'"style="font-size: '.$size.'%">'.$row['label'].'</a> ';
            }
    Sachant qu'une fois le premier while interpreté mon curseur est positionné à la fin, le second est inopérant.
    Par facilité, j'ai contourné le problème en ré-exécutant une 2ième fois la requête, mais cela ne me plait pas.

    Avez vous une idée de comment je pourrais optimiser ce code ?

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Il faut que tu remettes simplement le pointeur à 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_data_seek ( $resultat, 0 );

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Place le résultat de ta requête dans un tableau PHP (array( )).
    Tu pourras ensuite le manipuler/parcourir à ta convenance.

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Par défaut
    Merci j'ai opté pour la première solution qui me permet de ne rien chager au reste du code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/05/2010, 23h36
  2. [PHP 5.0] Optimisation boucle while pour envoi d'e-mails
    Par renaud26 dans le forum Langage
    Réponses: 1
    Dernier message: 18/02/2010, 08h22
  3. [MySQL] boucle while pour requête : erreur
    Par marcello06 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/09/2008, 06h41
  4. Probleme dans une boucle while pour remplir une JTable
    Par sky88 dans le forum Composants
    Réponses: 3
    Dernier message: 27/03/2008, 14h01
  5. Réponses: 6
    Dernier message: 28/04/2006, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo