• Bannato User Attivo

    Quel "Sposta su e sposta giù", come si realizza con PHP/Mysql?

    Spero di riuscire a spiegarmi.
    Supponiamo che agli utenti io faccia inserire in una loro pagina personale dei links a dei siti.

    Questi link sono inseriti in modo "accumulativo". Cioè loro navigano in una lista gigante di link e quando ne trovano uno piacevole cliccando su "aggiungi link alla mia pagina dei link preferiti" fanno comparire quel link nella loro pagina.

    Fin qui tutto semplice e chiaro.

    I link sono suddivisi per argomento. Alcuni parlando di mele, altri di pere ed altri di carciofi.

    Nella pagina dei link personali essi sono di default visualizzati secondo l'ordine cronologico di aggiunta.
    Quindi può capitare che c'è un link di un sito che parla di mele seguito da due di carfiofi, poi altre mele poi una pera e così via.

    *Vorrei dare la possibilità agli utenti di scegliersi la posizione dei link nella pagina. Lasciarsi organizzare da sè la lista dei link. Vorrei fare un sistema analogo a quello dei pannelli di gestione dei forum che hanno i links sposta su e sposta giù per posizionare le stanze del forum.

    Loro vogliono portare un link ad inizio lista e cliccano N volte il link "SPOSTA SU".

    Come lo organizzo usando db MYSQL se introdurre altre nuove tabelle?*

    Come posso "gestire" questo problema? Avete idee e consigli da darmi?


  • Consiglio Direttivo

    Ciao fabioski

    credo basti inserire nella tabella dei link un campo "ordinamento" e la query che estrarra' i dati faccia riferimento a questo campo nell'ORDER BY

    Poi ti dovrai gestire i vari sposta su e giu' con degli UPDATE, ma dovrai lavorare in modo da accertarti di non avere duplicati 😉


  • Bannato User Attivo

    Poi ti dovrai gestire i vari sposta su e giu' con degli UPDATE, ma dovrai lavorare in modo da accertarti di non avere duplicatiCi avevo pensato ma poi come gestisco chi ha il numero uguale?
    Dovrei forse aumentare di uno tutti i numeri superiori? E nel caso dello sposta giù?

    Non esiste una tecnica ancora più semplice?


  • Consiglio Direttivo

    Io ho buttato lì la prima cosa che mi è venuta in mente 😄 non so se ne esiste una più semplice 😄
    se devi passare un link da posizione 4 a 3, potresti fare una roba del genere
    [php]$pos = 4; // recuperato da un hidden data magari
    $newpos=$pos-1;

    $sql="UPDATE table SET ordinamento='0' WHERE id_utente='id' AND ordinamento='$newpos'"; // assegni un valore provvisorio alla terza posizione
    ......
    $sql="UPDATE table SET ordinamento='$newpos' WHERE id_utente='id' AND ordinamento='$pos'";
    .......
    $sql="UPDATE table SET ordinamento='$pos' WHERE id_utente='id' AND ordinamento='0'";[/php]
    In alternativa credo tu possa fare un SELECT memorizzando il risultato su un array, scambiare il contenuto delle due posizioni e UPDATare nuovamente i valori modificati.

    Al momento non mi vien altro in mente 😉