Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/09/2011, 16h36   #1
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 78
Points : 78
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 :
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 :
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 :
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 21h33   #2
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
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 :
1
2
3
foreach($resultat as $value){
  echo $value['nom'].'<br />';
}
rapide hein
en fait, ton :

Code :
1
2
3
4
5
6
$total_find = count($resultat);
        echo $total_find;
        for($i=0; $i <$total_find; $i++)
        {
// ...
}
correspond à

Code :
1
2
3
foreach($resultat as $value){
 // $value = en fait $resultat[i] dans ton autre code
}
voilà, j'espère t'avoir éclairé
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 22h57   #3
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 78
Points : 78
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web