php : max et min

  • Créateur du sujet Créateur du sujet Halbert
  • Date de début Date de début
A

Anonyme

Invité
Bonsoir

Y a-t-il une énormité que je ne vois pas ?

$reponse=mysql_query ("SELECT MAX(N1) AS MaxN1 From xxx WHERE Classe LIKE '$classe' and N1 <> 'Abs' and N1 <> ' '");


Et je ne récupère pas le max !
Alors qu'avec AVG pas de problème !

merci

Albert
 
Bonsoir

Y a-t-il une énormité que je ne vois pas ?

$reponse=mysql_query ("SELECT MAX(N1) AS MaxN1 From xxx WHERE Classe LIKE '$classe' and N1 <> 'Abs' and N1 <> ' '");


Et je ne récupère pas le max !
Alors qu'avec AVG pas de problème !

merci

Albert
je ne suis pas s&#251;r que &#231;a vienne de l&#224;, mais il me semble qu'en SQL c'est != et pas <>, sauf si <> veut dire autre chose.


Sinon je ne peux que te conseiller de mettre des ` autour des noms de champs et de tables dans ta requ&#234;te :)
 
je ne suis pas s&#251;r que &#231;a vienne de l&#224;, mais il me semble qu'en SQL c'est != et pas <>, sauf si <> veut dire autre chose.


Sinon je ne peux que te conseiller de mettre des ` autour des noms de champs et de tables dans ta requ&#234;te :)


Bonjour et merci. J'ai remplac&#233; <> par !=, &#231;a ne change rien. Par exemple, pour le max il m'est renvoy&#233; la plus grande des valeurs inf&#233;rieures &#224; 10, je ne sais pas pourquoi ?

Je n'ai pas bien compris o&#249; tu me conseilles de rajouter des '.

Albert
 
Commence par faire un select max(n1) from latable sans autre clause conditionnelle puis affine

Sinon, quelle utilit&#233; de mettre N1<>"" ?
 
Oui, bon.

Mais as-tu essay&#233; le max (N1) sans clause where ?
 
Pour MIN et AVG je veux éliminer les absences de notes : d'où le test <> ' '

Si tu stockes la chaîne vide dans ta colonne pour indiquer qu'il n'y a rien, ce n'est pas recommandé. Stocke y simplement "NULL". Et pour le test, tu fais "myCol IS NOT NULL".
 
Si tu stockes la chaîne vide dans ta colonne pour indiquer qu'il n'y a rien, ce n'est pas recommandé. Stocke y simplement "NULL". Et pour le test, tu fais "myCol IS NOT NULL".

Merci je vais tenir compte ce conseil. Mais rien à faire, il m'est renvoyé le max des notes inférieures à 10, je n'arrive pas à comprendre pourquoi ?
Albert
 
Si tu stockes la chaîne vide dans ta colonne pour indiquer qu'il n'y a rien, ce n'est pas recommandé. Stocke y simplement "NULL". Et pour le test, tu fais "myCol IS NOT NULL".

Help avant que je ne devienne fou ! AVG,MIN, COUNT; SUM pas de problème.
Mais MAX ne veut pas dépasser 10 !
Albert
 
Compris ! C'est la fonction MAX qui est mal programmée : pour comparer 9 et 19 par exemple, la comparaison commence par la gauche et la max est donc 9 !

En revanche si on rentre 09 et 19 le max sera 19 !!!!!!

Quelqu'un a-t-il une astuce qui permette d'éviter de rentrer 09 à la place de 9 ?

Albert
 
Compris ! C'est la fonction MAX qui est mal programm&#233;e : pour comparer 9 et 19 par exemple, la comparaison commence par la gauche et la max est donc 9 !

En revanche si on rentre 09 et 19 le max sera 19 !!!!!!

Quelqu'un a-t-il une astuce qui permette d'&#233;viter de rentrer 09 &#224; la place de 9 ?

Albert

Je n'y connais RIEN en mysql mais tu n'aurais pas d&#233;fini ce champs comme "texte" au lieu de "nombre"? ;)
 
Compris ! C'est la fonction MAX qui est mal programmée : pour comparer 9 et 19 par exemple, la comparaison commence par la gauche et la max est donc 9 !

En revanche si on rentre 09 et 19 le max sera 19 !!!!!!

Quelqu'un a-t-il une astuce qui permette d'éviter de rentrer 09 à la place de 9 ?

Albert

Ahah :D

Tu penses pas que si la fonction max() qui était buggué, ça se saurait et ça serait réparé ? ;)

C'est bien de se remettre en question parfois !

PS: la solution évoquée par gloup gloup doit être la bonne!
 
Ahah :D

Tu penses pas que si la fonction max() qui était buggué, ça se saurait et ça serait réparé ? ;)

C'est bien de se remettre en question parfois !

PS: la solution évoquée par gloup gloup doit être la bonne!

Effectivement ! Au temps pour moi !
Du coup je ne peux plus porter la mention Abs.
Y aurait-il une solution ?
Merci

Albert
 
Mais bien s&#251;r que tu peux toujours utiliser ABS() !
Il faut que ta colonne soit d&#233;finie comme un nombre!
 
Mais bien sûr que tu peux toujours utiliser ABS() !
Il faut que ta colonne soit définie comme un nombre!

Il parlait de la mention texte "Abs" comme absent.