Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> WSTAWIANIE REKORDU Z PLIKU CSV, jak wstawić by się NIE duplikowały rekordy
grzesio
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

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


Mam taki mały problem
nie wiem jak wstawić rekordy (500 - 20 000 rekordow) z pliku CSV, tak aby rekordy były unikalne nie powtarzały się, tzn gdy wczytam 2 razy ten sam plik rekordy nie dopisywały się ponownie.

1. istnieje pole id (autoincrement) identyfikujace dany rekord,

=======================
pobieram dane z pliku w ten sposób:

if (($handle = fopen('c:\przelewy\rok_2012.csv', "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;

.......................

INSERT INTO `wplaty_CSV_test` ( `data` , `wplacajacy` , `konto` , `tytul_wplaty` , `kwota` ,`saldo` , `wpisane` ) VALUES ('2012-05-15','Pan Jan','45654654676888888', 'OPŁATA ', '9.20','6.66', 'NIE' )

.......................


===========================
czy może lepiej:

LOAD DATA LOCAL INFILE '<file name>' INTO TABLE <table>

============================

z powodu pola autoincrement mam problem z tym:

INSERT INTO tmp SELECT DISTINCT * FROM wplaty_CSV_test

===============================
tabela prezentuje się tak:

CREATE TABLE IF NOT EXISTS `wplaty_csv` (
`nr` int(11) NOT NULL auto_increment,
`data` date NOT NULL,
`wplacajacy` varchar(170) NOT NULL,
`konto` varchar(28) NOT NULL,
`tytul_wplaty` varchar(400) NOT NULL,
`kwota` float NOT NULL,
`saldo` float NOT NULL,
`wpisane` varchar(3) NOT NULL default 'NIE',
PRIMARY KEY (`nr`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;

Jak wczytywać pliki CSV szybko sprawnie i skutecznie ?
Dziękuję z góry za pomoc
G.

Ten post edytował grzesio 15.05.2012, 08:48:00
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 07:11