Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    aggiornare posizioni in database

    ciao a tutti,
    ho un piccolo quesito...


    il una tabella ho questa situazione

    id / nome / posizione

    ogni record ha un campo posizione
    esempio:
    id = 1
    nome = Luca
    posizione = 5

    adesso vorrei avere la possibilita di cambiare la posizione di Luca da 5 a 2
    il problema è che alla posizione 2 c'è gia un altro utente che a sua volta dovrebbe cambiare posizione passando a 3 e di conseguenza tutti gli altri utenti dovrebbero scivolare di una posizione
    come potrei fare...
    grazie

  2. #2
    Nella pagina dove editi i dati, crea un campo hidden con il valore attuale della posizione.
    Nella pagina dove fai gli aggiornamenti scrivi:
    codice:
    $ordine = campo POST nuovo ordine...
    $ordine_old = campo POST vecchio ordine...
    $ID = campo POST id record...
    if($ordine > $ordine_old){		// se il nuovo ordine è maggiore del vecchio ordine
    						$update = "UPDATE tabella SET posizione = posizione-1 WHERE posizione >= " . $ordine_old . " AND posizione <= " . $ordine . " AND ID <> " . $ID;
    					}else{		// se il nuovo ordine è inferiore del vecchio ordine
    						$update = "UPDATE tabella SET posizione = posizione+1 WHERE posizione >= " . $ordine . " AND posizione <= " . $ordine_old . " AND ID <> " . $ID;
    					}

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Grazie mille
    per la risposta,

    mmm.. sembra funzionare ma non modifica i dati se le posizioni sono uguali, nel senso che se metto Luca a posizione 1 Marco che gia era a posizione 1 rimane a 1

    quindi ottengo due posizioni 1


  4. #4
    Hai creato il campo hidden con il valore della posizione attuale?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    questa è la funzione
    [code]
    function agg_descr($connessione,$descr,$id,$id_gallery,$pos izione,$old_posizione){

    if($posizione > $old_posizione){ // se il nuovo ordine è maggiore del vecchio ordine
    $update = "UPDATE xml SET posizione = posizione-1 WHERE posizione >= " . $old_posizione . " AND posizione <= " . $posizione . " AND id <> " . $id;
    }else{ // se il nuovo ordine è inferiore del vecchio ordine
    $update = "UPDATE xml SET posizione = posizione+1 WHERE posizione >= " . $posizione . " AND posizione <= " . $old_posizione . " AND id <> " . $id;
    }


    $query_generali = "UPDATE `xml` SET description = '$descr', posizione = '$posizione' WHERE `id` = '$id'";
    $generali = mysql_query($query_generali, $con

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    questa è la funzione

    [code]
    function agg_descr($connessione,$descr,$id,$id_gallery,$pos izione,$old_posizione){

    if($posizione > $old_posizione){ // se il nuovo ordine è maggiore del vecchio ordine
    $update = "UPDATE xml SET posizione = posizione-1 WHERE posizione >= " . $old_posizione . " AND posizione <= " . $posizione . " AND id <> " . $id;
    }else{ // se il nuovo ordine è inferiore del vecchio ordine
    $update = "UPDATE xml SET posizione = posizione+1 WHERE posizione >= " . $posizione . " AND posizione <= " . $old_posizione . " AND id <> " . $id;
    }


    $query_generali = "UPDATE `xml` SET description = '$descr', posizione = '$posizione' WHERE `id` = '$id'";
    $generali = mysql_query($query_generali, $c

  7. #7
    Eh no, tu devi eseguire la query $update, non la tua $query_generali.
    O meglio, devi integrare la tua dentro a $update.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    che sbadata!!!!!!! hahaha grazie

    classico errore da stupida...

  9. #9
    se ho capito bene forse nel mio blog puoi trovare una cosa che ti potrebbe interessare...

    http://www.miniscript.it/articoli/60...sposta_gi.html
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ops solo una cosa che dimenticavo,
    le persone sono divise in categorie, ad esempio Marco fa parte di id_gallery 5
    quindi bisognerebbe aggiornare solo quelli che fanno parte della id_gallery 5 in questo modo io aggiorno tutti

    scusami..

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.