Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Aktualizacja danych
-ANTUAN-
post 7.01.2013, 17:53:38
Post #1





Goście







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.

Go to the top of the page
+Quote Post
skleps
post 7.01.2013, 18:41:44
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

Ostrzeżenie: (0%)
-----


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ę.
Go to the top of the page
+Quote Post
-ANTUAN-
post 7.01.2013, 22:30:53
Post #3





Goście







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.
Go to the top of the page
+Quote Post
skleps
post 8.01.2013, 15:43:25
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

Ostrzeżenie: (0%)
-----


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"

Ten post edytował skleps 8.01.2013, 16:36:55
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 15:32