Au niveau du fonctionnement du code, il n'y a rien de bien compliqué. Tu affiches une banale liste d'articles. Lorsque tu fais du drag&drop sur tes articles, tu récupères le hook de la fonction afin de pouvoir envoyer une requête en AJAX pour mettre à jour l'ordre. Sauf que pour mettre à jour l'ordre de tes éléments, il te faut diverses entrées dans ta base de données afin de stocker le tout, par exemple :
Grâce à ça, tu as tes articles qui peuvent être trié sur une valeur qui n'est pas primaire. Du coup, lorsque tu feras ta première récupération d'élements, il faudra simplement que tu fasses une requête en triant par défaut sur l'ordre actuellement stocké dans la base. Ensuite, dès que tu seras dans ta requête AJAX et que ton serveur reçevera les nouvelles données, tu auras simplement à mettre à jour les nouveaux élements, un peu comme ça :
Cependant, je n'ai pas réellement compris l'intégrité de ton code. Tu expliques en tête que tu as une liste d'articles que tu souhaites envoyer via une newsletter. Cependant, lorsque tu récupères tes éléments, tu récupères d'abord un article, puis ensuite, tu vas taper dans une table list. En plus, tu fais un update dessus, mais tu n'es même pas sûr d'avoir des données à l'intérieur étant donnée les requêtes. De ce que je comprends, tu met en fait le contenu HTML de tes articles directement dans la nouvelle table. Et dans un sens, tu ne peux pas réellement faire ça. Si tu souhaites envoyer ces informations par mail, pourquoi tu ne fais un simple système d'association entre les listes de diffusions et les articles ?
Du coup, tes requêtes sont beaucoup plus simples. Tu as simplement à faire une jointure entre les deux tables pour récupérer les informations. Quant au rendu, tu peux le faire directement dans un fichier PHP à part, par lequel, le rendu sera fait lors de l'envoi de l'HTML en newletter.
J'espère avoir été assez clair dans mes propos...