Moze zaczne od poczatku. Chcialbym otworzyc plik txt, wczytac z niego wartosci po czym zapisac je w tabeli w bazie. Wydaje sie banalne, ale niestety jedna rzecz ktora POWINNA za cholere nie chce dzialac. Ale do rzeczy:
Otwieramy plik:
Kod
if($_POST["choice"] == "file"){
$filename = $_POST["file"];
if (is_file($filename))
{
$file = fopen($filename, "r");
$filename = $_POST["file"];
if (is_file($filename))
{
$file = fopen($filename, "r");
Dane w pliku txt zapisane sa w formacie:
dane1(średnik)dane2(średnik)dane3 przkładowo:
1999-03-04;23;45
nastepnie petla while i rozbicie kazdej lini na pojedyncze elementy:
Kod
while(!feof($file))
{
$line = fgets($file, 1024);
$dane = explode(";",$line);
{
$line = fgets($file, 1024);
$dane = explode(";",$line);
przy kazdej iteracji mamy zmienne $dane[0], $dane[1] i $dane[2] reprezentujace poszczegolne wartosci z kazdej lini z pliku. no to co z nimi zrobic? do bazy je i konczymy petle:
Kod
$query = mysql_query("INSERT INTO $table_name VALUES( '0' , '$id_patient' , '$dane[0]', '$dane[1]' , '$dane[2]'");
}
}
fclose($file);
}
}
}
}
fclose($file);
}
}
(w insercie pierwsza wartosc "0" to zmienna autoincrement "id" a id patient to stała, wiec zmieniaja sie prtrzy kazdej iteracji tylko dane[x])
Majac taki kod, przy kazdej iteracji while dostajemy rozne dane[x], wiec przeprowadzajac kazdorazowo insert powinnismy miec tyle insertow ile lini w pliku tak? NIE! dostajemy nie dosc tylko JEDEN wpis (nawet jezeli while iteruje wielorotnie) to jest to wpis zawierajacy dane z OSTANIEJ lini, wszystkie pozostale sa olewane.
Moim zdaniem wyglada to jakby insert wykonywany byl PO po wykonaniu petli while, pomimo ze znajduje sie w niej :/
ktos ma jakis pomysl?
z gory dzieki