Online aplikace a služby pro automatizované zpracování dat

Uživatel

Export XML dat pro našeptávač v PHP a SQL

Následující informace jsou určeny především pro programátory v PHP a SQL, kterým usnadní export dat z eshopu, magazínu či webu, pro našeptávače DataAPPs.

PHP knihovna (třída) a příklad exportu ke stažení

Jednoduchou PHP knihovnu (třídu) s níže uvedeným příkladem implementace exportu dat pro našeptávač lze stáhnout jako ZIP soubor pomocí tohoto odkazu: PHP knihovna a příklad exportu dat pro našeptávač (ZIP soubor)

Příklad implementace PHP knihovny pro export dat pro našeptávač

Uvedený příklad exportu dat pro našeptávače DataAPPs využívá již zmíněnou PHP knihovnu (viz. odkaz ke stažení výše). PHP třída FeedGenerator pro export XML dat získává data z databáze MySQL (Maria DB), a to provedením jednoduchého SQL dotazu na databázi pomocí standatrdního PDO objektu (PHP Data Objects).

Postupné kroky pro implementaci PHP knihovny (třídy FeedGenerator) jsou popsány v kódu níže:


<?php

/**
 *	
 * DataAPPs FTSS XML Feed Generator
 *	
 * Ukazka vygenerovani XML feedu pro DataAPPs naseptavace pomoci
 * jednoduche tridy a dat ziskanych z databaze pomoci PDO a SQL
 *	
 */

/**
 * Nacteme tridu FeedGenerator (pokud nepouzivate php class autoloading)
 */
require_once( dirname(__FILE__) . "/vendor/FTSS/Exporter/FeedGenerator.php" );

/**
 * Instance PDO pro provedeni SQL dotazu a ziskani dat z DB
 * TODO: Upravte dle vaseho databazoveho pripojeni nebo pouzijte PDO objekt z vaseho systemu
 */
$pdoDB = new PDO(
	"mysql:host=localhost;dbname=...database...;charset=UTF8" , "...user..." , "...password..."
	, array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8" , PDO::ATTR_TIMEOUT => 20 )
);

/**
 * Pole promennych k predani do SQL dotazu, nebo null
 */
$sqlVars = null;	// array( ':test' => "Test" );

/**
 * SQL dotaz pro ziskani dat z databaze pomoci PDO
 * TODO: Doplnit realne datove sloupce a nazev tabulky
 */
$sqlQuery = "
	SELECT DISTINCT
		product.`id` AS 'id'
		, 'product' AS 'type'
		, product.`code` AS 'code'
		, product.`title` AS 'title'
		, product.`keywords` AS 'keywords'
		, product.`brand` AS 'brand'
		, product.`similar` AS 'similar'
		, product.`url` AS 'url'
		, product.`img` AS 'img'
		, product.`price` AS 'price'
		, product.`priority` AS 'priority'
		, product.`flag` AS 'flag'
	FROM `nazev_databazove_tabulky` AS product
	LIMIT 50000
";

/**
 * Inicializujeme PDO databazi
 */
$isInit = FTSS\Exporter\FeedGenerator::initPDO($pdoDB);

/**
 * Provedeni SQL dotazu a ziskame data
 */
$resultData = FTSS\Exporter\FeedGenerator::execSQL($sqlQuery, $sqlVars);

/**
 * Pokud byl SQL dotaz proveden korektne a mame data
 */
if (is_array($resultData) && !empty($resultData)) {
	
	/**
	 * Vygenerujeme DataAPPs FTSS XML feed s daty z databaze
	 */
	$outputXML = FTSS\Exporter\FeedGenerator::buildXML( $resultData );
	
}

/**
 * Resetujeme generator
 */
FTSS\Exporter\FeedGenerator::reset();

/**
 * Odesleme XML data s HTTP hlavickou do vystupu
 */
header("Content-Type: application/xml; charset=UTF-8");
print($outputXML);

/**
 * Slusne odstranime promenne a ukoncime script
 */
unset($pdoDB, $sqlQuery, $sqlVars, $resultData, $outputXML);
exit();

?>

Příkladový PHP kód již vyžaduje jen drobné úpravy dle vašeho systému (nastavení připojení k databázi a definici SQL dotazu pro získání exportovaných dat). Výstupem PHP jsou pak validní XML data, která je možné použít jako zdroj pro import dat do našeptávačů Data APPs.