Erreur dans une fonction MAX

Erreur dans une fonction MAX - SQL/NoSQL - Programmation

Marsh Posté le 05-01-2009 à 13:53:55    

Bonjour à tous et ... meilleurs voeux (on fait durer le plaisir encore quelques jours)
 
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

Reply

Marsh Posté le 05-01-2009 à 13:53:55   

Reply

Marsh Posté le 05-01-2009 à 17:17:24    

Peut-être que le problème viendrait d'une confusion entre les deux exo_resultats. Essayer

$selmax = "SELECT * FROM exo_resultats
 WHERE id=(select MAX(e2.id) from exo_resultats e2)";

Reply

Marsh Posté le 06-01-2009 à 08:15:33    

Bonjour olivthill,
 
Merci pour ta proposition (que j'ai néanmoins du mal à comprendre mais que j'essaierai dès ce soir). Peux-tu me dire à quoi correspond ton e2 ?
Cordialement,
 
tete278

Reply

Marsh Posté le 06-01-2009 à 10:06:15    

Dans mon exemple, "e2" est un nom d'alias arbitrairement choisi. J'aurais pu prendre "toto". Les alias de table permettent de différencier des tables qui sont utilisés dans plusieurs endroits d'une requête.
N.B. je n'ai pas tester l'exemple parce que je ne dispose pas de MySQL donc je ne suis pas certain qu'il marche à 100%, mais il fonctionne sous Oracle. En tous cas, l'idée est d'utiliser des alias.

Reply

Marsh Posté le 07-01-2009 à 16:00:34    

(ceci dit, je ne pige pas pourquoi ça ne marche pas la requête du début... ce serait pas un mysql < 4.1 par hasard ?)

Reply

Marsh Posté le 07-01-2009 à 16:35:13    

(La requête du début marche aussi sous Oracle.)

Reply

Marsh Posté le 08-01-2009 à 09:23:40    

Bonjour à tous,
 
Merci pour vos interventions. Je confirme que j'ai testé sous PHP 5.2.0 et Mysql 5.0.27.
Cordialement,
tete278

Reply

Marsh Posté le 08-01-2009 à 10:07:57    

moi j'ai testé sous mysql 4.1 et ca marche :S

Reply

Marsh Posté le 12-01-2009 à 08:11:40    

Bonjour à tous,
 
N'arrivant pas à résoudre ce problème, je me dirige vers autre chose, non sans remercier ceux et celles qui se sont penchés sur mon problème et clos la discussion.
Encore merci.
tete278

Reply

Marsh Posté le 12-01-2009 à 08:27:40    

ceci dit je ne vois pas pourquoi on cherche du coté de mysql pour ton erreur, car si je ne me plante pas ta ligne problématique c'est jamais que l'affectation de ta variable selmax avec du texte et php te dit juste qu'il considère le max a l'intérieur de ta string comme une variable.
 
-> ton erreur est du coté php

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed