UPDATE avec ORDER by comment fair?

Résolu/Fermé
shadow - 26 mai 2010 à 13:09
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 - 26 mai 2010 à 16:02
Bonjour,


j'ai fait la requet suivante pour modifier un champ specifier la requet est:


mysql_query("UPDATE info i,client c,tonte t set i.Poid_net='$date'
where c.idclient=t.idclient and i.idclient=c.idclient and c.idclient='$client' and t.num_fabrication='$num' ORDER BY i.dinfo DESC LIMIT 0;")

j'obtient la reponse:


Incorrect usage of UPDATE and ORDER BY

svp aider
A voir également:

5 réponses

Utilisateur anonyme
26 mai 2010 à 13:20
Bonjour,
Dans une requête UPDATE, le ORDER BY ne sert à rien !!!
3
je sais mais il faut que je modifier la dernier information entre dans mon tablau j'ai beucoup d 'information qui se repete mai a un date defferent alor il faut que je modifier la dernier qui est entre dans ma table
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 13:26
Salut,

Il faut bien comprendre que le "Order By" te sert à trier tes résultat suivant un champ.
Or un insert ou un update ne retourne rien à part true ou false.
Donc il est impossible de trier le résultat!
Donc comme dit plus haut, le Order By ne sert à rien dans ces cas là.

a+
0
mais le probléme c j'ai beucoup d'information qui ent la meme date alor j'ai fai la requete

mysql_query("UPDATE info SET Poid_net=$date where idclient='$client' and Num_fabrication='$num' and date_entre=(select MAX(date_entre) from info)")

error est :
You can't specify target table 'info' for update in FROM clause
0
je sais mais il faut que je modifier la dernier information entre dans mon tablau j'ai beucoup d 'information qui se repete mai a un date defferent alors il faut que je modifier la dernier qui est entre dans la table
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 14:54
Dans ce cas tu fais comme ceci:

Update Table1 set champ1 = valeur1 where champDate = (Select MAX(ChampDate) from table1)


Et ca devrait fonctionner!
0
mai le probleme si j'ai beucoup d'information entrer dans la meme date
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 15:12
Essaye de parler francais déjà stp.
La je comprends rien à ce que tu dis :/
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 15:23
En gros tu veux updater toutes les lignes qui ont la date la plus récentes dans le champ date c'est ca ???
0
nn seulement un seule champ
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 15:28
Mais lequel?
Qu'est ce qui les différencie?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut,

Lis les valeur de ta table et tu récupère l'id de la dernière entrée, tu l'enregistre dans une variable et quand tu veut utilisé UPDATE, utilise aussi WHERE en indiquant la variable ...

Edit : Pourrais tu être clair, tant au niveau technique que logique ...
La chance aide parfois, le travail toujours !
Le vrai con est con. Celui qui n'est pas un vrai con n'est pas plus con qu'un autre.
0
merci beucoup ça fonctione bien
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
26 mai 2010 à 16:02
Alors là Alexis, je dis bravo...
Réussir à comprendre ce qu'il voulait était un grand exploit xD
0