Problème avec la fonction MAX

Eléphant du PHP | 121 Messages

18 mars 2010, 19:41

Bonjour à tous,

J'aimerai trouver le chiffre le plus grand dans ma base de donnée dans la colonne numrero.

j'ai créé le code suivant:
$select ='SELECT MAX(numero) AS numero FROM membres'; 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_array($result);
echo $row['numero'];
Le problème c'est qu'il affiche le chiffre 99 mais c'est pas le plus grand . Le plus grand dans ma base c'est 112.

Qui peu me dire ce qui ne vas pas .

merci pour votre aide

Mammouth du PHP | 985 Messages

18 mars 2010, 20:20

numero est un alias si utilisé avec AS, donc faut utiliser un alias et non le nom du champ.
L'entourer de guillemets ou d'apostrophes.

Donc logiquement:
$select ='SELECT MAX(numero) AS "max" FROM membres';
$result = mysql_query($select,$link) or die('Erreur : '.mysql_error());
$row = mysql_fetch_assoc($result);
echo $row['max'];
Sinon sans alias:
$select ='SELECT MAX(numero) FROM membres';
$result = mysql_query($select,$link) or die('Erreur : '.mysql_error());
$row = mysql_fetch_row($result);
echo $row[0];
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 5462 Messages

18 mars 2010, 20:33

non puisque qu'il n'y a qu'une valeur y'a pas de conflit

Mammouth du PHP | 985 Messages

18 mars 2010, 21:05

Je trouve cela tout de même plus clair :langue:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 5462 Messages

18 mars 2010, 21:07

Je trouve cela tout de même plus clair :langue:
ouai c'est sur c'est a eviter, par contre l'utilisation de de nom de fonction ou de mot magique est aussi deconseiller (max etant une fonction)
le plus claire étant :
SELECT MAX(numero) max_numero FROM membres

Mammouth du PHP | 985 Messages

18 mars 2010, 21:14

Bon allé go, arrêtons de chipoter, go pour "max_numero" alors :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
ViPHP | 5462 Messages

18 mars 2010, 21:15

ouai,
sinon de quelle type est la colonne ?

Eléphant du PHP | 121 Messages

18 mars 2010, 21:16

merci pour ton aide.

Malheureusement j'ai utilisé le code suivant :
$select ='SELECT MAX(numero) AS max_numero FROM membres';
$result = mysql_query($select,$link) or die('Erreur : '.mysql_error());
$row = mysql_fetch_assoc($result);
echo $row['max_numero'];
Et c'est toujours la même chose.

il affiche 99 au lieu de 112.

Mammouth du PHP | 985 Messages

18 mars 2010, 21:26

Essaye avec mysql_result().
http://php.net/manual/fr/function.mysql-result.php

De toute façon c'est bien mieux de l'utiliser quand la requête doit retourner qu'un seul champ d'un résultat...

Puis l'alias c'est mieux aussi de le mettre en guillemets ou apostrophes
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 121 Messages

18 mars 2010, 21:43

j'ai essayé c'est pareil.

c'est un truc de fou . pourquoi jusqu' 99 il arrive et au moment de passer la centaine il bloque. bizzard.

merci a celui qui pourra m'éclairer

ViPHP
ViPHP | 5462 Messages

18 mars 2010, 21:44

et le type de ta colonne c'est quoi ?

Eléphant du PHP | 121 Messages

18 mars 2010, 22:09

merci pour ton aide.

Effectivement le type de ma colonne était en faut et c'est pour ça qu'il y avait un problème.

Merci encore