Pour faire, ça, fait en deux étapes :
Premiére étape, tu récupéres les positions des deux éléments à inversé.
Dans la seconde, tu met à jour la position en calculant la nouvelle position de la maniére suivante : pos = ($position1+$position2) - pos
Si pos = $position1, alors "pos" prend la valeur de $position2. Si pos= $position2 alors "pos" prend la valeur de $position1.
Ca, c'était la façon globale de le faire à condition de conaitre l'id des deux éléments.
Si tu ne conais que l'id d'une seule des deux catégories mais que leur position se suive, alors il faut récupérer la position correspondant à l'id et faire ensuite l'opération suivante :
pos = ($position + ($position+1)) - pos
$position contient la position récupéré juste avant. Le +1 peut d'ailleur être remplacé par un -1 en fonction du sens dans lequel tu déplaces ta catégorie.
Dans les deux cas, dans la seconde requette tu peux sélectionner les deux élément en fonction de leur position. Ca t'éviteras la création d'une troisiéme requette qui n'aurait servit qu'a récupéré l'id de la catégorie avec laquelle tu veux inversé.
Voilà pour la théorie, je te laisses écrire les requettes et on les corrigera ensuite si tu n'y arrives pas.