Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1401 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Erreur MYSQL 1111

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur MYSQL 1111

n°1181331
kenji_lol
Pas de bras pas de chocolat !!
Posté le 22-08-2005 à 15:49:47  profilanswer
 

Bonjour à tous,  :hello:  
 
Voila j'aimerai updater led ernier element de ma table sachant que je ne connait pas ce nombre voici ma requete:

Code :
  1. UPDATE Traitement SET EFFIC='$EFFICACITE' WHERE NUM=MAX(NUM)


[edit]oups voila  
Mais il me retourne : Erreur MYSQL 1111 : Invalid use of group function
comme erreur quelqu'un sait il pourquoi car apres recherche je ne sais toujours pas
 
Merci


Message édité par kenji_lol le 22-08-2005 à 16:08:00
mood
Publicité
Posté le 22-08-2005 à 15:49:47  profilanswer
 

n°1181342
dwogsi
Défaillance cérébrale...
Posté le 22-08-2005 à 16:00:03  profilanswer
 

Faut pas faire une requête imbriquée pour ça?
Parce que MAX() dans un UPDATE ja sais pas si ca marche...
 
Edit: Pourquoi t'a mis un spoiler sur ton message d'erreur?  :??:


Message édité par dwogsi le 22-08-2005 à 16:01:12

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1181343
kenji_lol
Pas de bras pas de chocolat !!
Posté le 22-08-2005 à 16:01:09  profilanswer
 

acd je fais un select en premier et apres un update ?

n°1181344
dwogsi
Défaillance cérébrale...
Posté le 22-08-2005 à 16:02:25  profilanswer
 

UPDATE Traitement SET EFFIC='$EFFICACITE' WHERE NUM=(SELECT MAX(NUM) FROM Traitement LIMIT 1)
 
Queqlue chose comme ca ca doit marcher, enfin j'ais pas testé


Message édité par dwogsi le 22-08-2005 à 16:06:20

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1181353
omega2
Posté le 22-08-2005 à 16:14:50  profilanswer
 

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é.

n°1181358
kenji_lol
Pas de bras pas de chocolat !!
Posté le 22-08-2005 à 16:22:27  profilanswer
 

ca veut dire que je dois creer une autre table traitement t2 ??
bah non moi je veux pas


Message édité par kenji_lol le 22-08-2005 à 16:25:45
n°1181361
stb
Posté le 22-08-2005 à 16:27:12  profilanswer
 

non pas deux tables, ce sont des alias

n°1181378
kenji_lol
Pas de bras pas de chocolat !!
Posté le 22-08-2005 à 16:45:53  profilanswer
 

c'est bon voici :
 

Code :
  1. SELECT MAX(NUM) as dernier FROM Traitement WHERE NUMP=$NUMP AND NUMD=$NUMD
  2. UPDATE Traitement SET EFFIC='$EFFIC' WHERE NUM=dernier


et cela fonctionne  :D  
Merci pour vos reponse

n°1181381
omega2
Posté le 22-08-2005 à 16:51:53  profilanswer
 

kenji_lol a écrit :

ca veut dire que je dois creer une autre table traitement t2 ??
bah non moi je veux pas


on ne cré évidement pas deux tables identique, on fait le traitement sur deux alias d'une même table.
En gros, c'est comme si t'avais une liste dans un classeur, en tant normal, tu prend un stylo et tu parcours le classeur.
Là, t'en prend deux, le premier pour chercher le max et noter sa valeur, et le second pour parcourir l'ensemble du classeur une fois le max trouvé afin de repérer ceux qui sont égal au max.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Erreur MYSQL 1111

 

Sujets relatifs
[PHP] Comment générer une erreur HTTP 403 ?Erreur lors de l'installation d'un wiki
[PHP/MySQL] Connaître l'id de la ligne créée dans la baseErreur bizarre - Besoin d'explication avec formulaire [Résolu]
pas de cast as float sur mysql 4.0.x???mysql / sybase
impossible d'installer mysqlChamps vides dans une base mysql
[php 4 /mysql 4.1] hashage mdp ?table MySQL dans tableau (à 2 dimensions?)
Plus de sujets relatifs à : Erreur MYSQL 1111


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR