Ciao a tutti!
Esiste un modo in sql facile facile per spostare un record su e giù. Lo so realizzare, ma farei una cosa complicata (select, salvare i codici in un array, troverei il successivo, ecc.).
Attendo qualche SQLGURU![]()
Ciao a tutti!
Esiste un modo in sql facile facile per spostare un record su e giù. Lo so realizzare, ma farei una cosa complicata (select, salvare i codici in un array, troverei il successivo, ecc.).
Attendo qualche SQLGURU![]()
Secondo voi non esiste il metodo? (scusate per l'up)
Puoi associare un variabile che definisca l'ordine (un numero ad esempio) e modificare quella. Quando fai la SELECT poi ordini per quella variabile.
Oppure modifichi gli id utilizzando un algoritmo di sorting (tipo quicksort o mergesort), ma vale fino a lì... in sql un record "più su o più giù" non esiste, il risultato viene definito dall'ordinamento della query SELECT.
-----------------------------
Tv Portatili
devi fare 2 query di update con scambio dei numeri per ogni movimento..
nel "muovisu" per primo devi recuperare l'id e il valore di ordine di quello prima che hai cliccato con la select:
dove $ordine è il valore nel DB di quello che hai cliccato..Codice PHP:
SELECT id, ordine WHERE ordine < '$ordine' ORDER BY ordine DESC limit 1
recuperato questi valori devi fare le due query
vedi se intanto riesci a fare questo..Codice PHP:
$UPDATESQL = sprintf("UPDATE tabella SET ordine = '$valoreordinediquellocliccatodallaform' WHERE id='$id_recuperatodallaselectquasopra'");
$UPDATESQL = sprintf("UPDATE test SET ordine = '$ordine_recuperatodallaselectquasopra' WHERE id='$valoreIDdiquellocliccatodallaform'");
![]()
poi per logica fai il "muovigiu".. se hai difficoltà siamo qua..
Originariamente inviato da telegio
devi fare 2 query di update con scambio dei numeri per ogni movimento..
nel "muovisu" per primo devi recuperare l'id e il valore di ordine di quello prima che hai cliccato con la select:
dove $ordine è il valore nel DB di quello che hai cliccato..Codice PHP:
SELECT id, ordine WHERE ordine < '$ordine' ORDER BY ordine DESC limit 1
recuperato questi valori devi fare le due query
vedi se intanto riesci a fare questo..Codice PHP:
$UPDATESQL = sprintf("UPDATE tabella SET ordine = '$valoreordinediquellocliccatodallaform' WHERE id='$id_recuperatodallaselectquasopra'");
$UPDATESQL = sprintf("UPDATE test SET ordine = '$ordine_recuperatodallaselectquasopra' WHERE id='$valoreIDdiquellocliccatodallaform'");
![]()
poi per logica fai il "muovigiu".. se hai difficoltà siamo qua..![]()
![]()
Grazie! Ho risolto tutto!
Diciamo che ho risolto trovando in un sito estero, comunque la tua spegazione è stata comunque utilissima, grazieOriginariamente inviato da telegio
..col mio aiuto o senza??![]()
![]()
..metti il link..
io ci ho messo 2 giorni a capire come si faceva, e se c'è un modo più facile vorrei saperlo..![]()
![]()
E' uguale al tuo, cambia solo il nome dei campi.Originariamente inviato da telegio
..metti il link..
io ci ho messo 2 giorni a capire come si faceva, e se c'è un modo più facile vorrei saperlo..![]()
![]()