Mi sono trovato a controllare dei buchi di numerazione all'interno di una tabella di PrestaShop quando ho effettuato l'importazione diretta in db delle traduzioni, cosa che non si dovrebbe mai fare, ma per velocità va benissimo
naturalmente alle parti in grassetto dovete sostituire la tabella e la colona da controllare, modificando la where nella parte sottolineata
lo snippet è spiegato su http://www.codediesel.com/
il caso
quando ho estratto l'elenco dei prodotti da tradurre, il cliente ha continuato a creare i prodotti all'interno del sistema.
quindi si è creato un semplice gap riguardo ai prodotti estratti e i nuovi prodotti inseriti ma non estratti.
quindi durante la traduzione sono stati lasciati fuori i prodotti appena inseriti sul sistema
l'importazione è stata eseguita in tabella cancellando prima i record della lingua di destinazione e poi è stata effettuata l'importazione.
risultato i record in lingua di destinazione dei nuovi prodotti non esistevano più
ecco perchè è sempre delicato lavorare a db
soluzione
la soluzione è far ricreare dal db i record mancati. ma prima dobbiamo identificare i buchi.
a questo riguardo ci viene in aiuto un semplice sql.
la tabella in oggetto è ps_product_lang, la tabella di PrestaShop che contiene i dati in lingua dei prodotti
lo snippet può essere utilizzato per qualsiasi progetto, sistema e tabella
ecco lo snippet
SELECT a.id_product+1 AS start, MIN(b.id_product) - 1 AS end
FROM `ps_product_lang` AS a, `ps_product_lang` AS b
WHERE a.id_product < b.id_product and a.id_lang = 1 and b.id_lang = 1
GROUP BY a.id_product
HAVING start < MIN(b.id_product)
naturalmente alle parti in grassetto dovete sostituire la tabella e la colona da controllare, modificando la where nella parte sottolineata
lo snippet è spiegato su http://www.codediesel.com/
Commenti
Posta un commento