Pitanje je sljedece - csv fajl se uploaduje u root servera.
Sada podatke iz tog csv fajla treba preko php skripte, ajde nazovimo je import.php importovati u MySQL tabelu.
Ono za sta mi treba pomoc je sljedece: Ja imam skriptu koja koristi upload formu za upload csv fajla i onda ga importuje u bazu; ali interesuje me da li se neko od vas susretao sa potrebom, odnosno kako da importujem preko PHPa u bazu csv fajl koji je VEC NA SERVERU?
Zamislio sam to ovako - uploadujem csv, cron pokrene import.php, on prepozna da li je csv datoteka na serveru i ako jeste napravi import.
Hvala vam na pomoci, svaka je dobrodosla.
Ovo je neki okvirni kod koji sam zamislio, pa bih molio da mi pomognete, jer sve sto dobijem je da mi obrise podatke iz tabele a zatim ne insertuje zapise iz csv fajla??!!!
<?php
//Definisanje konekcije na bazu//
define('DB_SERVER', 'localhost');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'password');
define('DB_NAME', 'database-name');
@$conn = mysql_connect (DB_SERVER, DB_USER, DB_PASSWORD);
mysql_select_db (DB_NAME,$conn);
if(!$conn){
die( "Ne mogu se konektovati na bazu.");
}
// tabele u koje importujem podatke iz CSV fajla
$table = array(
'tabela1',
'tabela2',
'tabela3',
'tabela4',
'tabela5',
);
// ako je prva kolona u csv fajlu predstavlja nazive polja onda:
// $columnheadings=1
// a ako ne predstavlja onda:
// $columnheadings=0
$columnheadings = 0;
// email adresa na koju se salju rezultati
$emailaddress = "bajric.sanell@gmail.com";
// naziv email poruke
$subject = "CSV Import u bazu";
// email adresa za polje FROM:
$emailfrom = "bajric.sanell@gmail.com";
//izvodjenje operacija za sve array tebele
foreach ($table as $tablename) {
//praznjenje tabele; po potrebi;//
$deleterecords = "TRUNCATE TABLE `$tablename`";
mysql_query($deleterecords);
//brojaci uspjesnog i neuspjesnog importa
$pass = 0;
$fail = 0;
//csv fajl ima isti naziv kao tabela
//delimiter je zarez, sa sitim rasporedom kao i tabela u bazi
//nalazi se u istom direktoriju kao i ova skripta
$filecontents = file ("$tablename.csv"); # .csv je dodat uz naziv tabele radi provjere imena
// svaki zapis iz csv-a ce biti dodat u tabelu osim ako ne dodje do greske pri uvozu
for($i=$columnheadings; $i<sizeof($filecontents); $i++) {
$insertrecord = "Insert Into `$tablename` Values ($filecontents[$i])";
mysql_query($insertrecord);
if(mysql_error()) {
$fail += 1; //povecava se ako dodje do greske pri uvozu
}
else
{
$pass += 1; //povecava se ako je uvoz uspio
}
}
// dodaje linije uz email poruku o tome kako je import izvrsen
// te koliko je zapisa imalo gresku
$message .= "Table $tablename: Success=$pass Failure=$fail \n";
}
//vrijeme pokretanja skripte
$runtime = (date("d M Y H:i"));
//vrijeme cron posla
$message .= "\nTime of the message: $runtime (server time zone)\n\n";
//slanje email poruke
mail($emailaddress, $subject, $message, "From: '$emailfrom'");
?>
[Ovu poruku je menjao Ekonomist30 dana 21.06.2012. u 13:13 GMT+1]
[Ovu poruku je menjao Ekonomist30 dana 21.06.2012. u 13:14 GMT+1]
[Ovu poruku je menjao Ekonomist30 dana 21.06.2012. u 13:37 GMT+1]