Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Aktualizacja danych
Forum PHP.pl > Forum > Przedszkole
ANTUAN
Mam taki nietypowy problem mianowicie mam dwie tabele:

1 tabela products

w niej kolumny załóżmy:
ID|model_produktu|

2 tabela
products_detale

w niej kolumny:
ID|waga|kolor|


I teraz mam dane w excel w postaci kolumn |model_produktu|waga|kolor| Jednak tych modeli produktów jest załóżmy 100 a ja mam w sklepie tylko 50 które mnie interesują.

I teraz moje pytanie jak zaktualizować drugą tabelę znając tylko model_produktu?? Bo ręcznie to bez sensu szukać które produkty mnie interesują i przypasowywać w excelu model_produktu do ID.

skleps
Algorytm na szybko:

1. Zamień plik XLS na CSV
2. Zaczytaj plik CSV
3. Lecisz po pliku CSV wiersz po wierszu, sprawdzasz selectem czy dany wiersz "jest w bazie"
4. Jeśli dany wiersz "jest" w bazie i są różnice między CSV a bazą, to za pomocą UPDATE uaktualniasz bazę.
ANTUAN
Kurde nie ogarniam tego...

Czyli co musiałbym stworzyć zapytanie złóżmy
czy w tabeli 'products'.'products_model' istnieje załóżmy produkt X jeśli tak to UPDATE drugą tabele 'products_detale'.'waga' i 'products_detale'.'kolor'

Tylko na jakiej podstawie jeśli nie znam ID co jest częścią wspólną dla tych dwóch tabel?questionmark.gif

Jakby ktoś podał jakiś przykład byłbym wdzięczny... Albo jak powinno wyglądać takie zapytanie do bazy by uaktualnić drugą tabelę znając tylko nazwe produktu w pierwszej tabeli.
skleps
Cytat(ANTUAN @ 7.01.2013, 22:30:53 ) *
Kurde nie ogarniam tego...

Czyli co musiałbym stworzyć zapytanie złóżmy
czy w tabeli 'products'.'products_model' istnieje załóżmy produkt X jeśli tak to UPDATE drugą tabele 'products_detale'.'waga' i 'products_detale'.'kolor'

Tylko na jakiej podstawie jeśli nie znam ID co jest częścią wspólną dla tych dwóch tabel?questionmark.gif

Jakby ktoś podał jakiś przykład byłbym wdzięczny... Albo jak powinno wyglądać takie zapytanie do bazy by uaktualnić drugą tabelę znając tylko nazwe produktu w pierwszej tabeli.


Na szybko wiec mogą być błędy:

SELECT ID FROM products WHERE model_produktu = "model_produktu_z_pliku_csv"

Jeżeli zwrócone ID będzie większe od 0, to znaczy że masz w bazie produkt który właśnie obrabiasz w csv, więc możesz go uaktualnić:

UPDATE products_detale SET waga="waga_z_csv", kolor = "kolor_z_csv" WHERE ID = ID_Uzyskane_Z_Selecta

Taka metoda spowoduje że zawsze będzie ci się uaktualnioało czy potrzebe czy nie.

Możesz robić sprawdzenie od razu cwańszą metodą i od razu wyciągać z bazy cechy dla danego ID:

SELECT * FROM products p LEFT JOIN products_detale pd ON (p.ID = pd.ID) WHERE p.model_produktu = "model_produktu_z_pliku_csv"
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.