Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL/TXT] Rekordy z TXT do DB - jak wykluczyć duplikat?
Barczi
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 18.03.2007

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


Witam.

Mam sobie otóż następujący kod...
  1. <?php
  2. $file = file_get_contents('cds.txt');
  3. $lines = explode("\n", $file);
  4. foreach($lines as $line) {
  5. mysql_query ("INSERT INTO `plyty` SET `name`='$line';");
  6. }
  7. ?>

Oczywiście połączenie z bazą jest, a problem mój jest następujący:
Czy istnieje możliwość (poza unique_key) aby dodawane rekordy nie mogły się powtórzyć? Spytacie zapewne dlaczego tak, więc już odpowiem tam mam spis płyt więc musi to tak wyglądać..

Z góry dziękuję za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


A na podstawie czego sprawdzasz, czy rekordy nie mogą się powtórzyć? Nie mogą się powtórzyć wewnątrz pliku tekstowego, czy te z pliku nie mogą być takie same jak te w bazie? Plik jest duży czy mały? Ja bym to podzielił na dwa etapy:

1. Preparowania danych:
- generujesz klucz (np. data+numer produktu)
- usuwasz duplikaty (np. funkcją array_unique w przypadku małego pliku)
- sprawdzasz, czy istnieją już w bazie takie rekordy
- zapisujesz dane w nowym pliku, gdzie nowy wiersz = nowy rekord a pola są oddzielone znakiem tabulacji

2. Dodawanie danych:
- wykorzystaj LOAD DATA INFILE - dodaje cały plik tekstowy od razu do bazy

Jeśli rekordy mają być unikatowe warto dodać do tabeli klucz - upraszcza to znacznie sprawę.
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 13:06