Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Import CSV, Praca na zaliczenie
Anja
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.06.2007

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


Witam wszystkich. Mam na imię Anka i mam problem z zadaniem na zaliczenie :/ Musze napisać skrypt, który bedzie importował plik CSV do bazy danych, z tym, że musi on sprawdzać czy imię i nazwisko osoby nie jest już w bazie, jeżeli jest to tylko wyedytować tą osobę.

A więc tak:

Mam plik CSV o takiej mniej-więcej strukturze:
Kod
#Imie i nazwisko;Wpłata/wypłata;Stan;Wartość
** Klasa I;;;
Andrzej Andrzejczak;2;1;2.60
Bogdan Bogdanek;1;1;2.60
** Klasa II;;;
* A;;;
Celina Celińska;1;1;233.70
Dariusz Darecki;0;1;155.15
Edward Edwarczyk;1;1;395.90
* B;;;
Filip Filipiak;1;1;299.99
Grzegorz Grzegorzewski;2;0;473.72
Halina Haliniak;1;1;286.99


Legenda:
Listę wszystkich uczniów przedzielają wiersze określające przynależność ucznia do danej klasy(kategorii) i symbolu klasy (podkategorii). Nazwy kategorii poprzedzone są dwoma znakami gwiazdki * a podkategorii jednym znakiem gwiazdki.
W pierwszym wierszu znajduje się legenda pliku poprzedzona znakiem komentarza #.
Kodowanie polskich znaków w formacie Win-1250.

/************************************************/

Oto co muszę zrobić:
1. skryptem przekonwertować treśc pliku z kodowania Win-1250 na UTF-8 lub ISO 8859-2
2. wgrać do bazy zawartośc pliku: czyli skrypt sprawdza czy dany uczeń jest w bazie, jesli jest to aktualizacja danych, jeśli nie ma daodanie do bazy i/lub utworzenie kategorii. Plik bedzie wgrywany z serwera. Czyli ma być okienko w formularzu, gdzie podaj sie adres pliku.

/************************************************/

Gdy wrócę wieczorem to pokarze mój kod, który robiłam... Jak narazie to on dodaje lub aktualizuje... Albo raczej Dodaje pisząc ze aktualizuje albo na odwrót.

=== EDIT ===
oto mój kod
  1. <?php
  2. //include "header.php";
  3. include "conf.php";
  4.  
  5. if(isset($_POST['submit']))
  6.  {
  7.  $filename=$_POST['filename'];
  8.  $handle = fopen("$filename", "r");
  9.  $licznik = 0;
  10.  while (($data = fgetcsv($handle, 10000, ";")) !== FALSE)
  11.  {
  12. if($data[0][0]=='#') continue;
  13. if($data[0][0]=='*') continue;
  14. if($data[0]!="$imie")
  15. {
  16.  $import="INSERT skladka (imie,wplata,stan,wartosc) values('$data[0]','$data[1]','$data[2]','$data[3]')";
  17.  mysql_query($import) or die(mysql_error());
  18.  echo "<span style="color:green">$licznik. Dodano: $data[0]</span><br />";  
  19.  }
  20.  else
  21.  {
  22.  $query="UPDATE skladka SET imie='$data[0]', wplata='$data[1]', stan='$data[2]', wartosc='$data[3]]' WHERE imie='$imie'";
  23.  mysql_query($query);
  24.  echo "<span style="color:red">$licznik. Zaktualizowano: $data[0]</span><br />";
  25.  }
  26.  $licznik++;
  27.  }
  28.  fclose($handle);
  29.  print "Dodano $licznik nazwisk";
  30.  }
  31.  else
  32.  {
  33. print "<form action='csv.php' method='post'>";
  34. print "Dodaj plik do importu:<br>";
  35. print "<input type='text' name='filename' size='20'><br>";
  36. print "<input type='submit' name='submit' value='submit'></form>";
  37.  }
  38. ?>


Tak jak pisałam... on dodaje, czasem aktualizuje i nie wiem od czego to zależy.. a już na serio nie wiem jak zrobić aby dodawał do odpowiednich kategorii sad.gif

Ten post edytował Anja 8.06.2007, 23:04:21
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.08.2025 - 15:08