ACC SHELL
<?php
/* CSV Import class - Milan, Webrex (milan[and]webrex[dot]cz)
* verze: 0.5 RC
* datum: 24.03.2006
*
* zavislosti: zadne - globalni trida
*
* zmeny:
* verze 0.1 alpha - prvni vydani()
* verze 0.5 RC - pridana metoda getSkipRows()
*/
/*
$csv = new CSV_import("data.csv");
$csv->skipRows(0);
$csv->showTable();
*/
class CSV_import
{
var $filename;
var $skip;
var $data;
var $separator;
// CSV_import - konstruktor
// (nastavuje promenne + nacita obsah souboru do pole)
function CSV_import($filename = "import.csv", $separator = ";")
{
$this->filename = $filename;
$this->separator = $separator;
$this->skip = 0;
$this->data = file($this->filename);
}
// skipRows(num) - kolik radku ze zacatku CSV se ma preskocit
// 1. radek v CSV se zadava jako nulty
function skipRows($num)
{
$this->skip = $num;
}
// getSkipRows() - vrati pocet ignorovanych CSV radku od pocatku souboru
function getSkipRows()
{
return $this->skip;
}
// getRecord(rowNum) - vrati pole hodnot z jednoho CSV radku
function getRecord($rowNum)
{
return explode($this->separator,$this->data[$rowNum - 1]);
}
// getRecordSet() - vrati 2D pole se vsemi CSV zaznamy
function getRecordSet()
{
for($i = 0; $i < count($this->data); $i++)
{
$recordset[$i][] = explode($this->separator,$this->data[$i]);
}
}
// getRowsCount() - vrati celkovy pocet radku CSV
function getRowsCount()
{
return count($this->data);
}
// getColsCount() - vrati celkovy pocet sloupcu CSV
function getColsCount()
{
$n = $this->skip + 1;
$tmp = explode($this->separator,$this->data[$n]);
return count($tmp);
}
// createSQLInsert($table) - vrati pole se SQL inserty
function createSQLInsert($table)
{
$insert = array();
for($i = $this->skip; $i < $this->getRowsCount(); $i++)
{
$val = explode($this->separator,$this->data[$i]);
$insert[$i - $this->skip] = "INSERT INTO ".$table." VALUES('','";
$insert[$i - $this->skip] .= implode("','",$val);
$insert[$i - $this->skip] .= "')";
}
return $insert;
}
// createSQLInsertETrakce($table) - vrati pole se SQL inserty specialne pro projekt Elektro-Trakce s.r.o.
function createSQLInsertETrakce()
{
$insert = array();
for($i = $this->skip; $i < $this->getRowsCount(); $i++)
{
$val = explode($this->separator,$this->data[$i]);
if(strlen($val[1])==0 && strlen($val[4])==0 && strlen($val[14])==0 && strlen($val[16]==0)) continue;
$insert[$i - $this->skip] = "INSERT INTO trakceimportcz VALUES('','";
$insert[$i - $this->skip] .= $val[1];
$insert[$i - $this->skip] .= "','".$val[4];
$insert[$i - $this->skip] .= "','".$val[9];
$insert[$i - $this->skip] .= "','".$val[14];
$insert[$i - $this->skip] .= "','".$val[16];
$insert[$i - $this->skip] .= "')";
}
// for($j=0;$j< count($insert);$j++)
// echo $insert[$j]."<br>";
return $insert;
}
// showTable() - rychly vypis tabulky z dat;
function showTable()
{
$y = $this->skip;
$numcols = $this->getColsCount();
$numrows = $this->getRowsCount();
echo "<table cellspacing=\"1\" cellpadding\"1\" border=\"1\">";
while($y<$numrows)
{
$x=0;
echo "<tr>";
while($x<$numcols)
{
$fields = explode($this->separator, $this->data[$y]);
$fields = str_replace("\"", "", $fields);
echo "<td> ".$fields[$x]." </td>";
$x++;
}
$y++;
echo "</tr>";
}
echo "</table>";
}
}
/*include "../_konstanty.php";
include "../pripojenidb.php";
$err = 0;
$csv = new CSV_import();
$csv->skipRows(5);
$in = $csv->createSQLInsertETrakce();
mysql_query("TRUNCATE TABLE trakceimportcz");
for($i = 0; $i < count($in);$i++)
if(!mysql_query($in[$i])) $err++;
echo count($in)." / ".$err;
*/
?>
ACC SHELL 2018