update d'id

update d'id - PHP - Programmation

Marsh Posté le 24-07-2006 à 23:08:29    

Attention ça va faire mal :)
 
voilà mon problème (et oui encore)
 
dans une table j'ai
 
1 carotte
2 tomate
3 oignon
4 poulet
 
comme vous l'avez compris il y a un champ ID et un champ NOM
 
un script génère une liste à partir des entrées de cette table  
-carotte
-tomate
-oignon
-poulet
 
un script de drag and drop me permet de modifier cette liste
un nouvel ordre apparait par exemple
 
-tomate
-carotte
-oignon
-poulet
 
une variable me renvoi les nouveaux id sous forme d'une liste  
ici c'est 2,1,3,4 (car le 1(carotte) et le 2(tomate) ont été interchangés)
 
voici mon code
 

Code :
  1. <? echo $_POST['hiddenNodeIds']; // ma liste  
  2. $explode = explode(",", $_POST['hiddenNodeIds']);
  3. echo "<hr />";
  4. $ningun=0;
  5. foreach($explode as $value)
  6. {
  7. $ningun++;
  8. $query78 = "UPDATE xouuox_com SET id=\"$ningun\" WHERE id=\"$value\"";
  9. echo "<br />".$value."--->";
  10. echo "le champ $value passe en $ningun";
  11. mysql_query($query78) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  12. }
  13. ?>


 
donc j'obtiens
 
2 -->le champ 2 passe 1
1 -->le champ 1 passe 2
3 -->le champ 3 passe 3
4 -->le champ 4 passe 4
 
or quand j'effectue les requetes (une par une puisque c'est une boucle)
 
le deux passe un
mais la deuxieme instruction c'est 1 --> 2
 
donc je me retrouve avec
 
2 carotte
2 tomate
3 oignon
4 poulet
 
vous comprenez ?
 
en gros il faudrai executer toutes les requete d'update d'id en meme temps ....


Message édité par M Orthographe le 24-07-2006 à 23:09:30
Reply

Marsh Posté le 24-07-2006 à 23:08:29   

Reply

Marsh Posté le 24-07-2006 à 23:14:11    

Un troisième champ définissant l'ordre.
Yavait également un topic ou une requête permettant d'intervertir d'une seule requête deux id avait été donnée mais je la retrouve plus...

Reply

Marsh Posté le 24-07-2006 à 23:19:07    

comment ça ?

Reply

Marsh Posté le 24-07-2006 à 23:20:01    

une fois que l'ordre sera mis ça refera pareil pour la fois suivante non ?

Reply

Marsh Posté le 24-07-2006 à 23:22:52    

Avec un deuxième champ ça donne :
ID 1 passe à POSITION 2
ID 2 passe à POSITION 1
ID 4 passe à POSITION 3
ID 3 passe à POSITION 4
 
Tu te base donc sur l'ID pour sélectionner celui dont tu veux changer la position et de POSITION pour déterminé sa position dans la liste. Plus de de problème donc d'ID puisque tu le ne change plus.


Message édité par dwogsi le 24-07-2006 à 23:23:26
Reply

Marsh Posté le 24-07-2006 à 23:57:10    

merci tu m'auras bien aidé :)

Reply

Sujets relatifs:

Leave a Replay

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