Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Import z dużego pliku CSV, SELECT i UPDATE w MySQL
cichy19-
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 5.06.2006

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


Witam

Szukam rozwiązania na szybki import danych z bardzo dużych plików CSV. Miałby on polegać na uaktualnianiu tabeli danymi z pliku.
Niestety pierwsze co muszę zrobić to sprawdzić czy w tabeli istnieje odpowiedni wpis, a następnie uaktualnić odpowiednie pola.
Wiem że poniższe rozwiązanie jest fatalne ale jedyne co mi przychodzi do głowy:

  1. $plik_tresc = file($plik);
  2. foreach($plik_tresc as $line_num => $line) {
  3. list($pole1, $pole2, $pole3) = explode(';', $line);
  4.  
  5. $rezultat = mysql_query('SELECT * FROM Tabela1 WHERE Pole2=\''.$pole1.'\' LIMIT 1');
  6. $PoleID = mysql_result($rezultat, 0, 'Pole1');
  7.  
  8. mysql_query('UPDATE Tabela1 SET Pole3=\''.$pole2.'\', Pole4=\''.$pole3.'\' WHERE Pole1=\''.$PoleID.'\'');
  9.  
  10. }

Pole1 to INT, a Pole2 to Varchar.
Będę bardzo wdzięczny za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to może na początek, na dość logiczny początek, byś wykonywał UPDATE tylko wtedy, gdy select zwróci jakieś dane?
Go to the top of the page
+Quote Post
uupah5
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 4.09.2010
Skąd: warszawa

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


http://dev.mysql.com/doc/refman/5.5/en/load-data.html
Go to the top of the page
+Quote Post
cichy19-
post
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 5.06.2006

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


Zapomniałem dodać że UPDATE tylko wtedy jeśli SELECT zwróci jakieś dane.
Go to the top of the page
+Quote Post
uupah5
post
Post #5





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 4.09.2010
Skąd: warszawa

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


podałem Ci link. zapoznałeś się?

- ładujesz dane z pliku do tabeli roboczej
- operację aktualizacji wykonujesz na poziomie bazy danych (kolejny link: http://www.electrictoolbox.com/article/mys...s-table-update/ )

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 16:10