Jeżeli poniższe wskazówki okażą się dla Ciebie zbyt uciążliwe, to jest OK, zrobimy wszystko za Ciebie. Napisz do nas: bok@anonser.pl
Naszym celem jest: Na podstawie bazy danych sklepu uzyskać plik .CSV (otwierany w Excel'u) zawierający Trzy kolumny: IDENTYFIKATOR PRODUKTU, NAZWA PRODUKTU, OPIS PRODUKTU - do udoskonalenia.
Większość aplikacji sklepów internetowych posiada własne opcje eksportu i importu danych które można użyć. Działają one bardzo podobnie jak opisano poniżej w oparciu o uniwersalne narzędzie phpMyAdmin
I. na swoim serwerze na 100% masz dostęp do bazy danych Twojego sklepu przez program phpMyAdmin.
II. Wchodzisz do bazy danych używając phpMyAdmin i po lewej stronie klikasz w Tabelę zawierającą produkty. (możesz klikać w kolejne tabele żeby znaleźć tą tabelę, gdzie są opisy produktów które chcesz przekonwertować na unikalne. Razem z opisami będą też w tej Tabeli pola o nazwach 'code' lub podobnie oznaczające unikalny identyfikator produktu oraz 'name' czyli nazwa produktu. Jest też zapewne wiele innych Pól Tabeli ale nie są one dla nas istotne.
III. Na górze phpMyAdmin ponad listingiem produktów jest pole do wpisania komendy. Wyświetla się tam coś w rodzaju SELECT * FROM 'nazwa tabeli'. Ta komenda oznacza 'Wybierz wszystko (wszystkie pola) z tabeli ' i dlatego poniżej jest wyświetlana cała zawartość Tabeli- jej wszystkie pola. Po prawej stronie tego pola jest [EDYTUJ W LINII], [EDYTUJ]...
IV. Klikamy w EDYTUJ.
V. Stawiamy myszką kursor za znakiem '*' i kasujemy znak '*'. Teraz z listy po prawej stronie wybieramy interesujące nas pola oddzielając je przecinkami.Mają pojawić się tam gdzie był znak '*'.
VI. Nasza komenda powinna przybrać formę podobną do tej SELECT code, name, description_pl FROM 'nazwa tabeli'
VII. Klikamy w klawisz Wykonaj co spowoduje wyświetlenie Tabeli ale już tylko z trzema interesującymi nas kolumnami czyli w Tym przykładzie code, name, description_pl. Standardowo wyświetla się pierwsze 25 wierszy. Zmieniamy Liczbę wierszy na taką jaką chcemy, np. 100, 500
VIII. Na samym dole strony, w belce nazwanej 'Opcje na wynikach wyszukiwania' klikamy w Zaznacz Wszystko i klikamy na Export bo chcemy wysłać wszystko na nasz komputer.
IX. Na ekranie, który się pojawi wybieramy jako FORMAT CSV lub CSV dla Excel (nic innego nie zmieniamy. Domyślnie powinno być odznaczone 'Zrzuć wszystkie wiersze'.
X. Klikamy Wykonaj i tak ściągamy plik CSV na nasz komputer. Przy ściąganiu wybieramy Otwórz a nie Zapisz bo od razu chcemy zmienić nazwy kolumn odpowiednio na ID, NAME i DESCRIPTION.
XI. Plik otwiera się w naszym ulubionym edytorze plików CSV (Excel, LibreOffice itp.)
XII. Zmieniamy nazwy kolumn w nagłówku w naszym pliku odpowiednio na ID, NAME, DESCRIPTION - nie zrób literówek.Zapisujemy plik
XIII. Opcjonalnie możemy wyeksportować do csv całą bazę lub całą zawartość trzech kolumn żeby przetwarzać bazę w edytorze. Do podziału pliku CSV na mniejsze pliki np. po 100 czy 1000 opisów, możemy użyć np. tego narzędzia: https://download.cnet.com/CSV-Splitter/3000-2074_4-75910188.html. Otrzymamy pliki wsadowe, każdy z nagłówkiem, po 100 czy 1000 opisów
Wgrywamy pierwszy plik wsadowy na serwer. Serwer przetwarza opisy i zwraca nam plik CSV z dodaną kolumną o nazwie NEW gdzie znajdują się Nowe Unikalne Opisy. (Jest też kolumna o nazwie IDN która ma charakter techniczny i zawiera kolejne numery wierszy)
Możemy wgrywać kolejne pliki CSV po 100 czy 1000 opisów każdy, nie czekając na przetworzenie już wgranych, będą przetwarzane równolegle.
Teraz w naszym nowym pliku zmieniamy nazwy kolumn na rozumiane przez naszą bazę danych czyli 'ID' na 'code' (upewnij się że u Ciebie też tak się nazywała), 'NAME' na 'name', 'NEW' na 'description_pl' (upewnij się jak w Twojej bazie danych nazywają się kolumny). Usuwamy niepotrzebne nam kolumny DESCIPTION (gdzie są stare opisy) i IDN (techniczną) oraz NAME (bo do identyfikacji wystarczy nam ID). Teraz mamy plik zgodny z bazą sklepu
XIV. Teraz zaktualizujemy bazę naszego sklepu
Dla 100% bezpieczeństwa zróbmy kopię bazy sklepu. Klikamy w Export, pozostawiamy format SQL, pozostawiamy zaznaczone "Zrzuć wszystkie wiersze" i klikamy w klawisz "Wykonaj". Zapisujemy plik z bazą na komputereze.
Wersja I phpMyAdmin
1. Zaloguj się do panelu phpMyAdmin i wybierz bazę danych, którą chcesz zaktualizować.
2. Wybierz tabelę, w której chcesz zaktualizować dane.
3. Kliknij zakładkę "Import".
4. W sekcji "Pliki do importu" wybierz plik CSV, który chcesz zaimportować. Upewnij się, że opcja "Format pliku" jest ustawiona na "CSV".
5. W sekcji "Opcje importu CSV" dostosuj ustawienia, takie jak separator kolumn, separator pola tekstowego itp., w zależności od formatu pliku CSV. (Zwykle nic nie trzeba zmieniać).
6. Wybierz odpowiednią opcję dla "Akcji na tabeli podczas importu". Wybierz "Zastąp dane".
7. Kliknij przycisk "Wykonaj", aby rozpocząć import pliku CSV i zaktualizować dane w tabeli.
8. * Upewnij się, że w pliku CSV zmieniłeś nazwy kolumn ID, NAME i DESCRIPTION na takie jakie są w Twojej bazie danych
Wersja II phpMyAdmin
1. Zaloguj się do panelu phpMyAdmin i wybierz bazę danych, którą chcesz zaktualizować.
2. Wybierz tabelę, w której chcesz zaktualizować dane.
3. Kliknij zakładkę "Import".
4. W sekcji "Pliki do importu" wybierz plik CSV, który chcesz zaimportować. Upewnij się, że opcja "Format pliku" jest ustawiona na "CSV".
5. W sekcji "Częściowy import:" ustaw "Pomiń tę liczbę zapytań (dla SQL), zaczynając od pierwszej:" na 1 (pomijamy wiersz z nazwami kolumn).
6. W sekcji "Specyficzne opcje formatu:" dostosuj ustawienia, takie jak separator kolumn, separator pola tekstowego itp., w zależności od formatu pliku CSV. (Zwykle nic nie trzeba zmieniać). Zaznacz "Aktualizuj dane, gdy wykryte zostaną duplikaty kluczy podczas importowania" (bo będziemy nadpisywać dane dla istniejących ID/code). W polu "Nazwy kolumn:" wpisz kolumny, które zmieniamy oddzielając je przecinkiem, np. code,description_pl (w tej sposób będziemy zmieniać tylko zawartość kolumny 'description_pl' w wierszu z odpowienim identyfikatorem 'code') a pozostałe kolumny pozostaną bez zmian
7. Kliknij przycisk "Wykonaj", aby rozpocząć import pliku CSV i zaktualizować dane w tabeli.
8. * Upewnij się, że w pliku CSV zmieniłeś nazwy kolumn ID, NAME i DESCRIPTION na takie jakie są w Twojej bazie danych
Opcjonalnie - Wgranie do bazy przez skrypt php
===============================================================
//Tworzymy standardowe połączenie z bazą danych jako $connection
$servername = "localhost";
$username = "nazwa_uzytkownika";
$password = "haslo";
$dbname = "nazwa_bazy_danych";
// Tworzenie połączenia
$connection = new mysqli($servername, $username, $password, $dbname);
// Sprawdzanie połączenia
if ($connection->connect_error) {
die("Nie udało się połączyć z bazą danych: " . $connection->connect_error);
}
//Wykonujemy zapis do bazy
$file = 'sciezka/do/pliku.csv'; // Podajemy ścieżkę do naszego pliku z opisami
if (($handle = fopen($file, 'r')) !== false) {
// Pomijamy nagłówek pliku CSV
fgetcsv($handle);
while (($data = fgetcsv($handle, 1000, ',')) !== false) {
$id = $data[0]; // Wartość ID z pliku CSV -zakładamy tutaj, że jest to pierwsza kolumna czyli zero [0]
$opis = $data[4]; // Wartość Opisu NEW z pliku CSV -zakładamy tutaj, że NEW to trzecia kolumna czyli cztery [4] - zmień te numery jeżeli w Twoim pliku kolumny są w innej kolejności
// Wykonujemy zapytanie UPDATE
$query = "UPDATE tabela SET Opis = '$opis' WHERE ID = '$id'"; // Podmień 'Opis' i 'ID' nazwami pól w Twojej bazie (sprawdź w bazie jak nazywają się kolumny, pewnie nazwywają się inaczej niż ID i Opis tylko np. 'code' i 'description_pl')
mysqli_query($connection, $query);
}
fclose($handle);
}
mysqli_close($connection);
=================================================================