Page 1 sur 1

Erreur avec la fonction MAX

Posté : 06 janv. 2009, 09:27
par tete278
Bonjour à tous,

Je cherche à récupérer la plus grande valeur contenue dans le champ 'id' de la table exo_resultats et obtiens l'erreur suivante :
Notice: Undefined variable: max in C:\Program Files\EasyPHP 2.0b1\www\Site\Espace membre\membreSuite.php on line 58

NB: La ligne 58 en question est la suivante:
$selmax = "SELECT * FROM exo_resultats WHERE id=(select MAX(id) from exo_resultats)";

J'ai beau chercher, ...., il doit bien y avoir une erreur mais j'avoue ne pas la voir.
J'ajoute que le champ id est bien présent dans la table exo_resultats , qu'il est de type int(10) et que je teste avec PHP 5.2.0 et Mysql 5.0.27

Si une âme charitable et plus éclairée que la mienne voulait se pencher sur mon problème, ce serait avec grand plaisir.

tete278

Posté : 06 janv. 2009, 09:34
par @rthur
Bonjour,

Ton message d'erreur indique que le problème est à cause d'une variable $max non définie, or il n'y a pas cette variable dans la ligne que tu nous donne => tu ne regarde pas la bonne ligne.

Par ailleurs, je pense que ta requête MySQL peut être simplifiée comme ceci:
$selmax = "SELECT * FROM exo_resultats ORDER BY id DESC LIMIT 1";

Erreur avec la fonction MAX

Posté : 06 janv. 2009, 09:43
par tete278
Bonjour @rthur,

Merci tout d'abord pour ton intervention.
Parce que l'on est souvent trop sûr de soi, je viens de faire une recherche (avec CTRL + F) et confirme qu'il n'y a nulle part le terme MAX dans mon script, ailleurs que dans cette ligne 58. Il semble qu'il y aie une confusion entre la fonction MAX et une variable.
Aurais-tu une autre piste.
Merci encore.
tete278

Posté : 06 janv. 2009, 09:50
par @rthur
Et tu regardes dans le bon fichier (membreSuite.php) ?

Parce l'erreur que tu rencontres est une erreur PHP or tu utilises la fonction MAX de MySQL donc PHP ne devrait voir ta requête avec MAX que comme une chaine de caractères (et donc ne peut pas lever d'erreur pour cela).

Si tu ne trouves pas essaye avec ma requête SQL qui n'utilise pas MAX et qui est plus optimisée que celle que tu utilises à l'heure actuelle.

Erreur

Posté : 08 janv. 2009, 09:18
par tete278
Bonjour @rthur et merci pour ton intervention,

J'ai comme tu le préconisais modifié mon script qui devient le suivant :
// Code
58:$selmax = "SELECT * FROM exo_resultats ORDER BY id DESC LIMIT 1";
59:$result =mysql_query($selmax,$link) or die ('Erreur :'.mysql_errno().mysql_error());
60:$rows = mysql_num_rows($result);
61:while ($rows=mysql_fetch_array($result))
62:{
63: $id = rows['id'];
64:}
65:echo $id;


J'ai maintenant l'erreur suivante : Parse error: parse error, unexpected '[' in C:\Program Files\EasyPHP 2.0b1\www\Site\php\Espace membre\membreSuite.php on line 63

Je rappelle que je souhaite connaître la plus grande valeur du champ id.

Cordialement,

tete278

Posté : 08 janv. 2009, 09:26
par @rthur
$id = rows['id']; 
->
$id = $rows['id']; 
Tu aurai pu trouver l'erreur par toi-même là ;)

Erreur

Posté : 08 janv. 2009, 17:36
par tete278
Effectivement, c'était bien ça. Merci @rthur ainsi que tous ceux qui ont réfléchi sur mon cas.

tete278