Nombre d'élement

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

20 févr. 2007, 11:46

Sinon tu peux utiliser la solution inneficace de la coccinnelle prétentieuse
Où c'est qu'j'ai mis mon flingue ?... :evil:

Eléphant du PHP | 54 Messages

20 févr. 2007, 12:19

//////////////////////////////////////////////////
// TEST POUR LE NOMBRE DE FU POUR CHAQUE FU//
/////////////////////////////////////////////////

//Compter le nombre de FU 1
$req1 = "SELECT count(*) FROM membres FU where FU='FU +1'"; 
$res1 = mysql_query($req1) or die(); 
$nb_FU1 = mysql_result($res1, 0); 

//Compter le nombre de FU2
$req2 = "SELECT count(*) FROM membres FU where FU='FU +2'"; 
$res2 = mysql_query($req2) or die(); 
$nb_FU2 = mysql_result($res2, 0); 

//Compter le nombre de FU3
$req3 = "SELECT count(*) FROM membres FU where FU='FU +3'"; 
$res3 = mysql_query($req3) or die(); 
$nb_FU3 = mysql_result($res3, 0); 

if (($nb_FU1 >= $nb_FU2) and ($nb_FU1 >= $nb_FU3)) {
$max_nb = $nb_FU1;
}

if (($nb_FU2 >= $nb_FU1) and ($nb_FU2 >= $nb_FU3)) {
$max_nb = $nb_FU2;
}

if (($nb_FU3 >= $nb_FU1 )and  ($nb_FU3 >= $nb_FU2)) {
$max_nb = $nb_FU3;
}

Voilà ce que j'ai du faire pour afficher un malheureux nombre :twisted: :twisted:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 12:23

Et ça ? tu l'as essayé ? qu'est ce que ca te donne ?
$rs = mysql_query("SELECT fu, COUNT(*) AS nb FROM membres GROUP BY fu") or die($erreur=mysql_error()); 
while ($row = mysql_fetch_array($rs)) { 
  echo $row['fu'] . '=>' .$row['nb'] .'<br>'; 
}
@Albat : je l'ai mis sous clé.. on sait jamais, tu pourrais te blesser ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 54 Messages

20 févr. 2007, 12:25

Heu oui sa me donne :

Code : Tout sélectionner

FU +1=>1 FU +2=>2

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 12:36

Je comprends pas bien que la requête dans mysql te donne

Code : Tout sélectionner

FU nb FU +2 4 FU +1 2 FU +3 1
et que la lecture par php puisse de donner des valeurs et un ordre différent.... :-k
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 54 Messages

20 févr. 2007, 12:37

Je comprends pas bien que la requête dans mysql te donne

Code : Tout sélectionner

FU nb FU +2 4 FU +1 2 FU +3 1
et que la lecture par php puisse de donner des valeurs et un ordre différent.... :-k
Non, Non c'est que pour faire des test j'ai modifié les valeur, ta requête est les valeurs sont tout à fais bonne j'ai ses chiffres là dans ma base de donnée !!

mais maintenant faudrais que je puisse lui dire que je veux extraire le chiffre le plus gros du tableau ^^ enfin je pense que c'est comme ça qu'il faut faire.

Ps : sur mysql sa me donne bien :

Code : Tout sélectionner

fu nb FU +1 1 FU +2 2

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 12:53

Et que ne le disais tu plus tot que c'était bon ?! :)

Bon alors aucune idée si cela fonctionne, mais tu peux toujours essayer un

Code : Tout sélectionner

SELECT fu, MAX(COUNT(*)) AS nb FROM membres GROUP BY fu
pour avoir le count max :)


Sinon dans le while il te suffit de stocker le résultat dans une valeur temporaire que tu écrases chaque fois qu'un résultat est plus grand :
$fu = '';
$nb = 0;
while ($row = mysql_fetch_array($rs)) {  
  // echo $row['fu'] . '=>' .$row['nb'] .'<br>';  
  if($nb < $row['nb']) {
    $fu = $row['fu'];
    $nb = $row['nb'];
  }
}
echo "Le max est de ".$nb." pour ".$fu;
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 54 Messages

20 févr. 2007, 13:06

Et que ne le disais tu plus tot que c'était bon ?! :)
Désoler, j'étais dans mon truc j'y ai pas penser :(
Bon alors aucune idée si cela fonctionne, mais tu peux toujours essayer un

Code : Tout sélectionner

SELECT fu, MAX(COUNT(*)) AS nb FROM membres GROUP BY fu
pour avoir le count max :)
Non sa ne marche pas, sa ne me renvoie rien du tous ( page blanche ).
Sinon dans le while il te suffit de stocker le résultat dans une valeur temporaire que tu écrases chaque fois qu'un résultat est plus grand :
$fu = '';
$nb = 0;
while ($row = mysql_fetch_array($rs)) {  
  // echo $row['fu'] . '=>' .$row['nb'] .'<br>';  
  if($nb < $row['nb']) {
    $fu = $row['fu'];
    $nb = $row['nb'];
  }
}
echo "Le max est de ".$nb." pour ".$fu;
Youhouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu !!!! cette fois-ci c'est la bonne !!! sa marche !! Merci de m'avoir aider ! je vous ai.... :oops:
( :D )