Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    92

    Scambiare/invertire posizione di due record

    Ciao a tutti quanti!
    Avrei bisogno d'aiuto.
    Ho una tabella mysql ordinata in base al campo numerico "indice".

    Vorrei che l'utente potesse, attraverso il mio pannello di amministrazione in php, cliccando su due freccine (su e giù), "spostare" un record, ovvero scambiarlo con il record precedente o quello successivo.

    es ho 3 articoli ordinati per indice
    1 articolo gatto
    2 articolo cane
    3 articolo topo ... vorrei che gatto diventasse 2 e cane diventasse 1

    C'è una funzione di mysql che mi permetta di fare questa sorta di
    "update/scambio campo indice" in modo veloce.

    Avete altre soluzioni da consigliarmi???

    Grazie del prezioso aiuto.

  2. #2
    secondo me si può fare con una sola query.
    Naturalmente il campo indice NON deve essere chiave primaria (anche perché è concettualmente sbagliato modificare la chiave).

    Supponiamo tu debba scambiare gli indici 4 e 2.
    Ti calcoli la somma (6) e poi fai
    UPDATE tabella SET indice=$somma-indice WHERE(indice=2 OR indice=4);

    Se sai per certo che lo scambio avverrà tra elementi consecutivi, la condizione del WHERE può essere sostituita con un BETWEEN.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.