UPDATE avec ORDER by comment fair?

Résolu
shadow -  
xav3601 Messages postés 3390 Statut Membre -
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

5 réponses

  1. Manugeo
     
    Bonjour,
    Dans une requête UPDATE, le ORDER BY ne sert à rien !!!
    3
    1. shadow
       
      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
  2. xav3601 Messages postés 3390 Statut Membre 312
     
    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
    1. shadow
       
      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
  3. shadow
     
    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
    1. xav3601 Messages postés 3390 Statut Membre 312
       
      Dans ce cas tu fais comme ceci:

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


      Et ca devrait fonctionner!
      0
    2. shadow
       
      mai le probleme si j'ai beucoup d'information entrer dans la meme date
      0
    3. xav3601 Messages postés 3390 Statut Membre 312
       
      Essaye de parler francais déjà stp.
      La je comprends rien à ce que tu dis :/
      0
  4. xav3601 Messages postés 3390 Statut Membre 312
     
    En gros tu veux updater toutes les lignes qui ont la date la plus récentes dans le champ date c'est ca ???
    0
    1. shadow
       
      nn seulement un seule champ
      0
    2. xav3601 Messages postés 3390 Statut Membre 312
       
      Mais lequel?
      Qu'est ce qui les différencie?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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
    1. shadow
       
      merci beucoup ça fonctione bien
      0
    2. xav3601 Messages postés 3390 Statut Membre 312
       
      Alors là Alexis, je dis bravo...
      Réussir à comprendre ce qu'il voulait était un grand exploit xD
      0