Problème fonction max()

Répondre
BilouZ36
le 27/03/2013 à 17:47
BilouZ36
Bonjour,

Depuis quelque temps je cherche à récupérer la valeur la plus haute et celle la plus basse des 5 dernières ligne d'une table mysql. Mais je suis bloqué car si je fais la requête suivante ne marche pas.

<?php 
mysql_query('SELECT MAX(cours) AS max FROM table ORDER BY id DESC LIMIT 5');
php ?>


La limite n'est pas prise en compte, je ne sais pas comment faire. Alors, je fais un array, je sépare les informations par une virgule.

<?php 
$str = array();
$i = '0';
$sql = mysql_query('SELECT (cours) FROM table ORDER BY id DESC LIMIT 5');
while($data = mysql_fetch_array($sql)){
$str[$i]= $data['cours'].', ';
$i++;
}
php ?>


Je récupère mes informations une à une (Si il y a plus simple....)
<?php 
$chaine = $str[0].$str[1].$str[2].$str[3].$str[4];
echo '<br />Chaine = '.$chaine;
php ?>


Je supprime la dernière virgule

<?php 
$chaine = substr($chaine, 0, -2);
php ?>


Jusqu'ici tout marche bien, si je fais un echo, c'est OK!

Mais à partir du moment ou je cherche la valeur maximal ou minimal avec la fonction max() ou min(), j'ai le message d'erreur suivant:
<?php 
Warning: max() [function.max]: When only one parameter is given, it must be an array in C:\wamp\www\test\index.php on line 96
php ?>


Si vous pouvez me venir en aide, merci d'avance
pfff, c'est pas facile....
BilouZ36
le 28/03/2013 à 08:07
BilouZ36
Bon, voici une alternative qui je pense être simple, peut-être lourde au niveau du traitement mais elle marche.

Etape 1 : Je récupère mes infos dans un array
<?php 
$i=0;
$array = '';
$sql = mysql_query('SELECT (cours) FROM table ORDER BY id DESC LIMIT 5');
while($data = mysql_fetch_array($sql)){
$array[$i] = $data['cours'];
$i++;
}
php ?>



Etape 2 : Vérification des informations
<?php
echo '1 = '.$array[0];
echo '<br />2 = '.$array[1];
echo '<br />3 = '.$array[2];
echo '<br />4 = '.$array[3];
echo '<br />5 = '.$array[4];
php ?>


Etape 3 : Petite condition pour trouver la valeur la plus forte
<?php 
if($array[0]>=$array[1]){$max = $array[0];}else{$max = $array[1];}
if($max>=$array[2]){$max=$max;}else{$max=$array[2];}
if($max>=$array[3]){$max=$max;}else{$max=$array[3];}
if($max>=$array[4]){$max=$max;}else{$max=$array[4];}
echo '<br />Max est = à :'.$max;
php ?>


Etape 4 : Petite condition pour trouver la valeur la plus faible
<?php 
if($array[0]<=$array[1]){$min = $array[0];}else{$min = $array[1];}
if($min<=$array[2]){$min=$min;}else{$min=$array[2];}
if($min<=$array[3]){$min=$min;}else{$min=$array[3];}
if($min<=$array[4]){$min=$min;}else{$min=$array[4];}
echo '<br />Min est = à :'.$min;
php ?>


Il y a surement plus simple, mais cela marche.
pfff, c'est pas facile....
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours