dj.drezyna Napisano Marzec 22, 2010 Zgłoś Share Napisano Marzec 22, 2010 Moje pytanie dotyczy rezultatu poniższego kodu, ponieważ po jego wykonaniu tworzy się tabela, która nie posiada tylu rekordów co plik csv. Dlaczego zatem rekordy są gubione? Używam php 5,3,2 Zachowanie jest naprawdę bardzo dziwne, ponieważ gdy zmienię pplik na text (nie varchar), to zamiast tworzenia tab. o ok. 400 rekordach, tworzy się tabela, której zawartość gubi jedynie 6-15 rekordów z tych 3300. Co jest zatem nie tak? <?php $baza = mysql_connect('localhost', 'root', 'a'); mysql_set_charset('latin2',$baza); $bazapol = mysql_select_db('danefotkol',$baza); $zapytanie = "CREATE TABLE podst ( pfolder varchar(8), pplik varchar(8), pocena varchar(1), pserialok varchar(75), pnrtab varchar(20), popis text, pmiejscowka varchar(40), pdata varchar(10), pmiejsce varchar(40), pstacja varchar(40), pautor varchar(40), PRIMARY KEY (pplik) )"; $wbazy = mysql_query($zapytanie,$baza); $spisglobalny = file('Gal/Dane/SpisWsz.csv'); foreach ($spisglobalny as $linia) { $osobne = explode(';', $linia); $zapytanie = "INSERT INTO podst VALUES ('$osobne[0]','$osobne[1]','$osobne[2]','$osobne[3]', '$osobne[4]','$osobne[5]','$osobne[6]', '$osobne[7]','$osobne[8]','$osobne[9]','$osobne[10]')"; $wbazy = mysql_query($zapytanie,$baza); if ($wbazy) { echo ''; } else { echo $osobne[1]."<br />"; } } echo '</p>'; mysql_close($baza); ?> A tu przykładowa linia z pliku csv: F_D00021;D0002032;2;EN57;2065;Pocig osobowy z Bydgoszczy Gł. do Olsztyna Gł. wyrusza by przy następnym zatrzymaniu zakończyć bieg.;;2009-01-14;Olsztyn;Olsztyn Zachodni;; Z tym, że pierwsze pole może być tylko 8 znakowe lub 6 znakowe. Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Marzec 23, 2010 Zgłoś Share Napisano Marzec 23, 2010 spróbuj zmienić zapytanie na INSERT INTO podstawowa SET pfolder='$osobne[0]', pplik='$osobne[1]', .... po za tym masz PRIMARY KEY (pplik) więc dane w tej kolumnie nie mogą się powtarzać edit: na primary lepiej dać jakieś pole id, np `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY Link do komentarza Udostępnij na innych stronach More sharing options...
dj.drezyna Napisano Marzec 23, 2010 Autor Zgłoś Share Napisano Marzec 23, 2010 Jak wrócę do domu to sprawdzę ten sposób ale jedno mnie dziwi. Otóż przy każdym włączeniu kompa i odpaleniu tego skryptu inne pola znikają. A kiedy w danym włączeniu to znikają ale zawsze te same rekordy. A jak włączę jeszcze raz kompa nstępnego dnia to co? To znikają inne. Oczywiście za każdym razem kiedy wykonuję skrypt to wcześniej usuwam tą tabelę podst. Poza tym to jak można zastosować set kiedy to jest do aktualizowania rekordów? No i na w3chools napisali też, że: INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,....) Co też wypróbuję ale warto, żeby zwrócić uwagę na to dziwne zachowanie opisane na samej górze postu. No i też nie wiadome było czy dane się powtórzą. Otóż się nie powtórzą, bo jest to nazwa pliku, która w założeniu mojej galerii nie może się powtórzyć na sto procent. Aaaa i kolejna sprawa. Otóż jak w pierwszym polu nie wybiorę trybu text tylko varchar(8) to wszystko, czyli dane w danej komórce każdej kolumny zamienia się na coś w stylu ds07de45fgty6o A jak było mówione pierwsza kolumna do dane tekstowe 6 lub ośmioznakowe. pozdr, i dzięks Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
dj.drezyna Napisano Marzec 23, 2010 Autor Zgłoś Share Napisano Marzec 23, 2010 Nie działa. Teraz jak mam kompa odpalonego to niesamowite ale nie zmieniając nic kodu przerabia 419 rekordów z ok. 3300. Nie wiem co jeszcze mam zmienić. sql nowiutkie tak samo php najnowsza wersja. No i apasz wersyjka 2.2.8 Po prostu próbowałem już wszystkiego i nie wiem dlaczego tak się dzieje, że pomija pewne a właściwie większość linii pliku csv. Plik csv generowany przez OpenOffice 3.2 Prosiłbym jeżeli ktoś zna odpowiedź to p o m o c y ! Dziękuję. Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.