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

PHP & Base de données Discussion :

compter le nombre de résultat et faire la boucle est 'il plus rapdie que 2 foreach? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut compter le nombre de résultat et faire la boucle est 'il plus rapdie que 2 foreach?
    Bonjours ,

    voici le résultat d'un dump, (on ne connais jamais le nombre de réponse)
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    array(24) {
      [0] => array(1) {
        ["nom"] => string(7) "DARAZAC"
      }
      [1] => array(1) {
        ["nom"] => string(9) "DARBONNAY"
      }
      [2] => array(1) {
        ["nom"] => string(7) "DARBRES"
      }
      [3] => array(1) {
        ["nom"] => string(6) "DARCEY"
      }
      [4] => array(1) {
        ["nom"] => string(8) "DARDENAC"
      }
      [5] => array(1) {
        ["nom"] => string(8) "DARDENAY"
      }
      [6] => array(1) {
        ["nom"] => string(6) "DARDEZ"
      }
      [7] => array(1) {
        ["nom"] => string(8) "DARDILLY"
      }
      [8] => array(1) {
        ["nom"] => string(7) "DAREIZE"
      }
      [9] => array(1) {
        ["nom"] => string(7) "DARGIES"
      }
      [10] => array(1) {
        ["nom"] => string(8) "DARGNIES"
      }
      [11] => array(1) {
        ["nom"] => string(8) "DARGOIRE"
      }
      [12] => array(1) {
        ["nom"] => string(8) "DARGOIRE"
      }
      [13] => array(1) {
        ["nom"] => string(9) "DARMANNES"
      }
      [14] => array(1) {
        ["nom"] => string(7) "DARMONT"
      }
      [15] => array(1) {
        ["nom"] => string(6) "DARNAC"
      }
      [16] => array(1) {
        ["nom"] => string(8) "DARNETAL"
      }
      [17] => array(1) {
        ["nom"] => string(7) "DARNETS"
      }
      [18] => array(1) {
        ["nom"] => string(6) "DARNEY"
      }
      [19] => array(1) {
        ["nom"] => string(17) "DARNEY AUX CHENES"
      }
      [20] => array(1) {
        ["nom"] => string(11) "DARNIEULLES"
      }
      [21] => array(1) {
        ["nom"] => string(6) "DAROIS"
      }
      [22] => array(1) {
        ["nom"] => string(8) "DARVAULT"
      }
      [23] => array(1) {
        ["nom"] => string(6) "DARVOY"
      }
    }
    pensez vous que ce script est plus rapide que d'avoir 2 foreach encastré ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            Zend_Debug::dump($resultat);
            $total_find = count($resultat);
            echo $total_find;
            for($i=0; $i <$total_find; $i++)
            {
                echo $resultat[$i]['nom'];
                echo "<br>";
            }

    je souahite savoir à l'avance combien de donnée il y a dans un tableau, mais je ne sais pas il vaut mieux utiliser ce script pour une question de performance?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($resultat as $key=>$sousresulstat)
    {
    foreach($sousresultat as $final
    {
    echo $final
    echo "<br/>";
    }
    merci d'avance pour la réponse, si la solution de compter est la plus rapide, je garde cette methode car je la préfère

  2. #2
    Membre actif
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Points : 281
    Points
    281
    Par défaut
    Salut, je remarque que dans ta deuxième solution celle avec count(), tu considère que le tableau est constitué d'une liste d'array contenant une seule entrée appelée "nom". es-ce toujours le cas ?
    pour les perf, je crois que foreach est plus rapide (et plus pratique) que ta deuxième méthode ... en fait, il ne doit y avoir que très peu de différence, mais foreach est fait pour les cas comme ça.

    Donc si le tableau est bien constitué d'une liste d'array contenant une seule entrée appelée "nom", voici ce qu'il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($resultat as $value){
      echo $value['nom'].'<br />';
    }
    rapide hein
    en fait, ton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $total_find = count($resultat);
            echo $total_find;
            for($i=0; $i <$total_find; $i++)
            {
    // ...
    }
    correspond à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($resultat as $value){
     // $value = en fait $resultat[i] dans ton autre code
    }
    voilà, j'espère t'avoir éclairé

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de ta réponse, je trouve pratique la deuxième solution , car on
    on voit bien le nom des élément.

    http://www.phpbench.com/

    j'ai aussi fait le test avec une requet de 42000 mots, le foreach est plus rapide, je vais essayer de l'utiliser le plus souvent .
    tien il y a benchmark, je crois que cela répond à ma question

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2014, 21h01
  2. Requête compter le nombre de résultats par tranche de 5mn
    Par Sethenssen dans le forum Requêtes
    Réponses: 9
    Dernier message: 20/01/2014, 15h15
  3. Compter le nombre d'enregistrements pour limiter une boucle
    Par guivrator dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/05/2009, 13h56
  4. [MySQL] Compter le nombre de résultat d'une requête
    Par gueud dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/02/2008, 13h51
  5. [ODBC] Compter le nombre de résultats
    Par Artusamak dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/06/2006, 12h03

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