Modificare ID ordine nel database

Domande a questioni che hanno già trovato una risposta su questo forum

Moderatore: mod Documentazione

Rispondi
Avatar utente
Spiderweb
membro Veteran
membro Veteran
Messaggi: 573
Iscritto il: 28/09/2005, 22:09
Località: Toscana

Modificare ID ordine nel database

Messaggio da Spiderweb »

In un vecchio thread (http://www.oscommerceitalia.com/forums/viewtopic.php?t=8497&highlight=cancellare++ordine) si parlava di come svuotare la tabella order per azzerare l'id dopo aver fatto i nostri vari test iniziali.

Nel caso però di un Ecommerce già avviato, se per una prova sbagliata vi salta un numero ID, non potete certo svuotare tutta la tabella perdendo gli ordini giusti...

Facendo varie prove ho capito dove "mettere le mani" per rimettere l'id progressivo giusto.

Prima di tutto si cancella l'ordine errato, così da toglierlo dalla vista nel lato admin :wink:

Se non sono arrivati ulteriori ordini, la soluzione è semplice:

- tramite phpmyadmin si esporta il database
- si apre in locale tramite un editor di testi (wordpad di windows va benone)
- si cerca la riga Struttura della tabella `orders`
- alla fine del CREATE TABLE `orders` trovate TYPE=MyISAM AUTO_INCREMENT=XX ; (dove xx è il numero progressivo dell'ordine)
- cambiatelo mettendo il valore del numero che deve distinguere il prossimo ordine (esempio: se l'ultimo ordine effettuato è il 49 li dovete mettere 50).

Salvate e importate il DB al posto del vecchio.

Questo valore lo ritrovate se con phpmyadmin guardate la struttura della tabella orders, in basso a destra troverete un riquadro che riporta il Prossimo Autoindex.

Non so se questa operazione si può fare senza l'esportazione del DB, direttamente da phpmyadmin... io ho provato e riprovato e non sono riuscito... se qualcuno più esperto di me sa come si fa lo posti almeno diventa un'operazione ancora più veloce :wink:

Se invece sono arrivati altri ordini, la cosa si fa un pò' più lunga da correggere ma è abbastanza semplice, si potrebbe fare anche correggendo i valori direttamente nel file di testo del DB ma è meglio farlo tramite phpmyadmin perchè è molto più intuitivo.

Facciamo l'esempio che l'id giusto è il 50 mentre adesso siamo al 51.

- Fate il Mostra della tabella Orders, trovate l'ordine che dovete modificare e cambiate il valore in orders_id (ci sarà il 51 e voi mettere il 50).

- Fate il Mostra della tabella Orders_total e idem come sopra, cambiate l'orders_id.

- Stessa cosa nella tabella Orders_products

Naturalmente dovete fare anche la modifica riportata sopra altrimenti correggete solo l'ID dell'ultimo ordine ma poi al prossimo riporta sempre quello sbagliato +1 (sempre quel famoso autoindex) :wink:

Mi raccomando, prima di mettersi a modificare il DB fate il backup di quello vecchio!!!
Se per caso cancellate per sbaglio qualcosa almeno potete ritornare indietro.
Prima di postare leggetevi le FAQ: viewtopic.php?t=3259
Rispondi