Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: DELETE e riassegna

  1. #1

    DELETE e riassegna

    Ciao a tutti. Ho una necessità particolare. Al click dell'utente su un determinato pulsante, io devo andare a cancellare una intera riga di tabella (già quì ci sono dei provlemi con DELETE * FROM tabella WHERE id = $id)...

    Ma il vero problema è che una volta eliminato io devo riassegnare l'id in modo cronologico a tutte le righe di tabella dopo.

    es. se cancello la riga 4 di 6. vorrei che la cinque diventasse 4 e la 6 5...

    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di Avalox
    Registrato dal
    Nov 2003
    Messaggi
    302
    Scusa la domanda... come mai ti serve avere un ordine "cronologico" in quel modo?

    L'unico modo che io conosco è quello di ricreare la tabella inserendo tutti i dati da zero, ma non credo che sia la strada migliore...(magari una tabella d'appoggio), altrimenti creare un ciclo che aggiorna la tabella con una query per ogni riga della tabella...

  3. #3
    Scusa la domanda... come mai ti serve avere un ordine "cronologico" in quel modo?
    Perchè l'id non è auto-increment, lo assegno io contando il numero di occorrenze trovate.Come è ora, se io cancello l'id 4 di 10, nel crearne uno nuovo conto le righe e sono nove, quindi assegno 10 al nuovo. E mi trovo con 2 10...

  4. #4
    Utente di HTML.it L'avatar di Avalox
    Registrato dal
    Nov 2003
    Messaggi
    302
    Forse la soluzione migliore è quella di rendere l'id auto_increment modificando direttamente la tabella del database...

    Se non puoi farlo cerchiamo una soluzione alternativa.

    Fammi sapere

  5. #5
    No, ora lo faccio, però poi non mi posso basare sull'id per fare la modifica. E va bene, sto cambiando tutto per basarmi sul link (indirizzo completo)...

    Ora il problema è che non riesco a cancellare con la stringa:
    codice:
    $linkc = $_POST[linkc];
    $deleteSQL = "DELETE * FROM link WHERE link =$linkc" or die ("Errore");
    $result = mysql_query($deleteSQL);
    Perchè?

  6. #6
    l'id del record per definizione non deve essere MAI modificabile, se ti serve un campo per la cronologia usa un campo timestamp

    ciao

  7. #7
    Capisco, e ti ringrazio perchè queste cose non le so e provo.
    E como posso per esempio, richiamare (da timestamp) le ultime tre righe inserite?

  8. #8
    SELECT * FROM tabella ORDER BY timestamp DESC LIMIT 3

    EDIT
    Ma questo lo potevi fare anche con l'id (anche se hai dei vuoti)

    SELECT * FROM tabella ORDER BY id DESC LIMIT 3

  9. #9
    Ma il timestamp devo inserirlo io in un campo di tabella o è già insito (ogni volta che tocco una riga di tabella si aggiorna?)...

  10. #10
    Il problema è che mysql non mi lascia inserire un timestamp vecchio, lo aggiorna automaticamente)...

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.