|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Alexandre LABURE Inscription : janvier 2011 Messages : 8 ![]() |
Bonjour,
J'ai réaliser une petite application qui crée automatiquement des pages. Dans ma base j'ai un champ 'ID', un champ 'Ordre' et je peux organiser à la main l'ordre d'affichage depuis le champ ordre. La problématique qui me pousse d'abord à trouvé un algorithme valable puis ensuite son développement réel est que je n'arrive pas à automatisé cette tâche. En effet, lorsque je fait l'affichage, pour l'exemple j'ai Code :
Affin d'illustrer le résultat que ça devrais donner: Code :
-Décaler indépendamment l'ordre, puis UPDATE. Sans succès. -Décaler d'un cran et refaire le count de 2 en 2. Sans succès. -Faire du multi-requêtage sir les ID, Sans succès. Ce que je cherche maintenant : -Un algorithme pour essayer de faire une automatisation de cette tâche -Le cas échéant un lien pouvant expliquer cette automatisation. Mes récherches étant infructueuses. Dans l'attente de votre aide. Merci |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
La solution la plus simple consiste à intervertir le champ "ordre" de deux éléments pour faire monter / descendre un élément par rapport à l'autre.
Tu fais ça très simplement en envoyant deux requêtes UPDATE.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Alexandre LABURE Inscription : janvier 2011 Messages : 8 ![]() |
Sur le principe, je suis entièrement d'accord avec toi.
Mais voila, il y a un 'mais'... Je connais l'ID du champ qui donne l'ordre. En revanche je ne connais pas l'ID du second champ qui doit bouger. Cela supposerais que si je découpe logiquement ce qui devrais être fait, on obtiendrais les étapes suivantes:
Peut-être une piste |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Avec les fonctions min() et max() de SQL tu peux t'en sortir.
Il faut récupérer l'id d'ordre maximum qui est inférieur à ton ordre courant pour remonter ta page. Et il faut récupérer l'id d'ordre minimum qui est supérieur à ton ordre courant pour descendre ta page. |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Personnellement, j'ai eu un cas similaire:
Réorganiser des lignes de tableau. (Tu peux faire une ligne de tableau = 1 page). http://www.isocra.com/2008/02/table-...jquery-plugin/ Tu peux utiliser l'exemple du deuxieme tableau. Ca permet le "drag and drop" en js de ligne de tableau (<tr>) et ça appelle une fonction de callback lorsque tu as modifié l'emplacement d'une ligne. test l'exemple tu verras. A toi d'adapter la valeur des TR etc...
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Alexandre LABURE Inscription : janvier 2011 Messages : 8 ![]() |
Effectivement l'utilisation du JS est possible mais dans mon cas à éviter à tout prix. Donc je retourne sur l'idée de faire en tout PHP.
Maintenant voyons pourquoi je donne une telle réponse négative.
En Php maintenant, je m'interroge sur la fonction max() et min(). Je n'ai pas eu l'occasion de les employés et un exemple pourra peut-être me décider à gratté sur ce sujet. J'espère que je ne déçois pas trp en faisant une exclusion totale du JS mais je pense que c'est pas fiable à 100%. Je n'ai hélas pas droit à l'erreur, donc un script PHP est obligatoire. |
|
|
00
|
|
|
#7 | |||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Ok pour le fait que le JS ne soit pas sur tout les navigateurs ou désactivé. Pour ce qui est de la fiabilité, je ne suis pas trop d'accord. (même si ce n'est pas le sujet ^^). Tu fais ton JS (qui ne demande pas énormément de connaissance si ce n'est de placer les ID de page dans les ID de TR.
Ensuite, tu récupères une chaîne varchar de la longueur de l'ordre des TR (que tu as modifié) il te suffit ensuite de faire un explode et de vérifier (regex?) que ce que tu récupères est valide. Foilà. ^^
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#9 | ||||||||
|
Invité de passage
![]() Alexandre LABURE Inscription : janvier 2011 Messages : 8 ![]() |
Radical... Cherche pas à me convertir, le JS est de loin le codage qui n'est pas fiable ni exécuté de façon identique partout
Bon j'ai essayer ceci: Code :
Avant l'exécution de la requête Up : Code :
Code :
Code :
|
||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com