Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122

    [mysql] problema con gli id

    Colleghi scripterati...

    ho un piccolo problema con gli ID di mysql.
    Ho fatto un pannello di amministrazione per l'inserimento di articoli e bla bla bla

    inserisco e modifico gli articoli tranquillamente e l'ID si incrementa.
    Tutto a posto fino a quando però non interviene la cancellazione di un record.
    Se io ho tre articoli
    1 - primo articolo
    2 - secondo articolo
    3 - terzo articolo

    e cancello per esempio il secondo ottengo una cosa del genere
    1 - primo articolo
    3 - terzo articolo

    mentre vorrei ottenere che i record si scalassero...
    ovvero ottenere
    1 - primo articolo
    2 - terzo articolo
    poichè la non scalatura dei record mi crea non pochi problemi...

    si può fare una cosa del genere ?
    Grazie...
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  2. #2
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Ah forse un piccolo aiutino...
    ho cancellato il record con questa query
    Codice PHP:
    $query "DELETE FROM $tabella WHERE id=$id"
    così se qualcuno magari ha una query diversa che possa risolvere il problema...
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    che io sappia non si può fare

    soprattutto su un campo auto_increment

    ma si sa c'è sempre qualcuno che ne sa di più

    teniamo attivo il 3rd

    /* No Comment Please */

  4. #4
    Originariamente inviato da Nix82
    Ah forse un piccolo aiutino...
    ho cancellato il record con questa query
    Codice PHP:
    $query "DELETE FROM $tabella WHERE id=$id"
    così se qualcuno magari ha una query diversa che possa risolvere il problema...
    Qualunque cosa sia e' una pirlata... per definizione l'id e' unico, inamovibile, immodificabile... come berluscao... ma volendo.. ed avendo tutti gli id ordinati e non relazionati con altre tabelle .. potresti fare:
    codice:
    $query = "DELETE FROM $tabella WHERE id=$id";
    $query1 = "UPDATE $tabella SET id = id - 1 where id > $id";
    $query2 = "alter table $tabella auto_increment = $id";
    Il fatto di mettere l'auto_increment basso non e' significativo, tanto verra' messo il primo valore libero...

    Ma siccome e' una cazzata spostare un id autoincrement (qui differisce da ber*)... qui lo dico e qui lo nego.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Originariamente inviato da piero.mac
    codice:
    $query1 = "DELETE FROM $tabella WHERE id=$id";
    $query2 = "UPDATE $tabella SET id = id - 1 where id > $id";
    $query3 = "alter table $tabella auto_increment = $id";
    ciao piero grazie...
    Io non ho la tabella che si lega a nessun altra...e il fatto di poter scalare gli ID mi aiuta in tante altre cose.

    Potresti spiegarmi un pochino il codice :master: ?

    codice:
    //cancello l'id
    $query1 = "DELETE FROM $tabella WHERE id=$id";
    nel secondo script l'operazione viene fatta anche se all'itnerno degli " :master:
    codice:
    //sposto l'id ai record che hanno ID > $id
    $query2 = "UPDATE $tabella SET id= id - 1 where id>$id";

    il terzo non l'ho capito...puoi spiegarmelo ?
    codice:
    //???
    $query3 = "alter table $tabella auto_increment = $id";
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    Ma a cosa ti serve non lo so

    :master:


    se li riordini mica ti pesano di meno-....





    /* No Comment Please */

  7. #7
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    Originariamente inviato da Miso
    se li riordini mica ti pesano di meno-....

    lo ben so...infatti io ho detto mi risolve dei problemi mica che mi pesano di meno.

    A cosa serve la query ALTER ?? :master:
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    After = aggiorna i campi from la tabella


    secondo me sono solo problemi nella tua testa


    scherzo........ solo che mi sembra incomprensibile il motivo per cui debba fare una cosa del genere

    /* No Comment Please */

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    scusa "after table" modifica la struttura della tabella
    /* No Comment Please */

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    301
    va bhe te lo spiego meglio



    quando modifichi gli id nella query 2
    tu hai un auto increment che mysql si inposta di defolt

    esempio
    questi sono i campi che hai inserito
    1
    2
    3
    4
    quando vai ad inserire un altro campo mysql sa che sarò il numero 5

    anche se cancella la numero 4

    l'incremento è sempre 5
    infatti se cancelli con la query 1 id 4
    avrai
    1
    2
    3
    ma se inserisci un prodotto
    sarà id 5
    e ti troverai
    1
    2
    3
    5

    il prossimo id inserito sarà 6 e cosi via

    con la query 2 imposta gli id in sequenza
    quindi ora avremo
    1 1
    2 2
    3 3
    5 4

    ma l'auto increment è rimasto 6
    capito
    con la query 3
    imposta questo increment a 5 cioè l'ultimo id inserito



    un casino ma logico

    /* No Comment Please */

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.