Code:
<?php
error_reporting(E_ALL ^ E_NOTICE);
class Parser
{
public $host = "";
public $user = "";
public $pass = "";
public $db = "";
private $charset = "utf8";
private $table = "";
public $file_url;
private $date;
public function __construct($host = NULL, $user = NULL, $pass = NULL, $db = NULL)
{
if($host == NULL || $user == NULL || $pass == NULL)
{
$host = $this->host;
$user = $this->user;
$pass = $this->pass;
$db = $this->db;
}
else
{
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->db = $db;
}
$connect = mysql_connect($host,$user,$pass);
if(!$connect)
{
die("Nepodarilo sa spojit sa databazou.");
}
else
{
mysql_query("SET CHARACTER SET '".$this->charset."'",$connect);
}
$select = mysql_select_db($db);
if(!$select)
{
$select = mysql_select_db($this->db);
if(!$select)
{
die("Nastala chyba pri volbe databazy.");
}
}
}
public function parse($file)
{
$this->file_url = $file;
$xml = simplexml_load_file($this->file_url) or die("XML subor sa nepodarilo nacitat.");
$i = 0;
while(1)
{
if($xml->DEAL[$i]->ID == NULL)
{
break;
}
$select = "SELECT * FROM ".$this->table." WHERE url_dodavatela = '".$this->file_url."'";
$select_query = mysql_query($select);
if(mysql_num_rows($select_query) == 0)
{
$this->date = date("j.n.Y");
$sql = "INSERT INTO ".$this->table."(id_zlavy, mesto, info, perex, link, img, zlavnena_cena,
originalna_cena, zlava, min_zakaznikov, max_zakaznikov,
zaciatok, koniec, adresa, kategoria, url_dodavatela,datum_pridania)
VALUES('".$xml->DEAL[$i]->ID."','".$xml->DEAL[$i]->CITY."','".$xml->DEAL[$i]->TITLE."',
'".$xml->DEAL[$i]->TITLE_SHORT."','".$xml->DEAL[$i]->URL."','".$xml->DEAL[$i]->IMAGE."',
'".$xml->DEAL[$i]->FINAL_PRICE."','".$xml->DEAL[$i]->ORIGINAL_PRICE."',
'".$xml->DEAL[$i]->DISCOUNT."','".$xml->DEAL[$i]->MIN_CUSTOMERS."','".$xml->DEAL[$i]->MAX_CUSTOMERS."',
'".$xml->DEAL[$i]->DEAL_START."', '".$xml->DEAL[$i]->DEAL_END."', '".$xml->DEAL[$i]->ADRESS."',
'".$xml->DEAL[$i]->TAG."','".$this->file_url."','".$this->date."')";
$query = mysql_query($sql);
if(!$query)
{
die("Dany XML subor sa nepodarilo nainportovat.");
}
else
{
$i++;
}
}
else
{
while($sel = mysql_fetch_assoc($select_query))
{
if($sel['id_zlavy'] == $xml->DEAL[$i]->ID)
{
$i++;
continue;
}
else
{
if($xml->DEAL[$i]->ID == NULL)
{
break;
}
else
{
$this->date = date("j.n.Y");
$sql = "INSERT INTO ".$this->table."(id_zlavy, mesto, info, perex, link, img, zlavnena_cena,
originalna_cena, zlava, min_zakaznikov, max_zakaznikov,
zaciatok, koniec, adresa, kategoria, url_dodavatela,datum_pridania)
VALUES('".$xml->DEAL[$i]->ID."','".$xml->DEAL[$i]->CITY."','".$xml->DEAL[$i]->TITLE."',
'".$xml->DEAL[$i]->TITLE_SHORT."','".$xml->DEAL[$i]->URL."','".$xml->DEAL[$i]->IMAGE."',
'".$xml->DEAL[$i]->FINAL_PRICE."','".$xml->DEAL[$i]->ORIGINAL_PRICE."',
'".$xml->DEAL[$i]->DISCOUNT."','".$xml->DEAL[$i]->MIN_CUSTOMERS."','".$xml->DEAL[$i]->MAX_CUSTOMERS."',
'".$xml->DEAL[$i]->DEAL_START."', '".$xml->DEAL[$i]->DEAL_END."', '".$xml->DEAL[$i]->ADRESS."',
'".$xml->DEAL[$i]->TAG."','".$this->file_url."','".$this->date."')";
$query = mysql_query($sql);
if(!$query)
{
die("Dany XML subor sa nepodarilo nainportovat.");
}
else
{
$i++;
}
}
}
}
}
}
}
};