essaye
UPDATE Traitement t1, Traitement t2
SET t1.EFFIC='$EFFICACITE'
WHERE t1.NUM=MAX(t2.NUM)
Ce n'est pas un probléme de php mais de sql.
Si t'as eu ce probléme, c'est par ce que max() est une fonction qui prend le maximum de plusieurs lignes. Ca c'est OK.
Le probléme, c'est que les comparaisons telles que = sont des comparaisons ligne par ligne et non pas des comparaisons par groupes. En clair, si tu indiques la même table des deux côtés du comparateur, il ne poura pas comparer à un ensemble de ligne. Il lui est donc impossible d'appliquer le 'max'.
Une solution, c'est de lui faire croire qu'on lui fournis deux tables en donnant des alias à la table. (le role de t1 et t2) Grace à ça, il poura faire un regroupement d'un côté et comparer ensuite les lignes de l'autre exemplaire de la table par celui où le max est appliqué.