Andmete importimine csv-failist Übercarti

Übercart on Drupali lisamoodul ning see võimaldab pidada e-poodi. Süsteem on kaunikesti paindlik. Järgnevalt on vaatluse all koodijupp, mis loeb csv(comma separated values) -failist andmed ning salvestab need andmebaasi. csv-failis on andmed kujul:

„toote kood“,“ingliskeelne jutt“,“venekeelne jutt“,“hind“

Siit siis importimise skript:

<?php
 
mysql_connect('localhost','root','');
mysql_select_db('fred');
mysql_query('SET NAMES "utf8"'); // vajalik vene tähtede kohalejõudmiseks
 
header('Content-type: text/html; Charset: UTF-8');
$fname = "list.csv"; // faili nimi, selle struktuuri leiad ülalt
$i=0;
 
$fp = fopen($fname, 'r');
 
if($fp)
{
	while($fields = fgetcsv($fp, 4096))
	{
		$i++;
		if($i==1) // esimese rea jätame loendamata
			continue;
		// asendame hinnas koma punktiga ja samas jätame sealt välja euro märgi koos tühikuga (utf8s kulub nende kuvamiseks 4 baiti)
		$fields[3] = str_replace(',','.', mb_substr($fields[3], 4, mb_strlen($fields[3])));
 
#print_r($fields);
 
$price = $fields[3];
$model = $fields[0];
$title = (substr($fields[2], 0, strpos($fields[2], ',')));
$teaser = $body = "<p>".$fields[2]."</p><p>".$fields[1]."</p>";
 
#echo $teaser;
#echo $title;
 
mysql_query('INSERT INTO fred_node SET title='.esc($title). ',created='.time(). ',changed='.time(). ',comment=1,promote=1,type="product",uid=1,language="en"');
 
$nid = mysql_insert_id();
 
mysql_query('UPDATE fred_node SET vid='.esc($nid).' WHERE nid='.$nid);
 
mysql_query('INSERT INTO fred_node_revisions SET nid='.$nid.', vid='.$nid.', uid=1, title='.esc($title).', body='.esc($body).', teaser='.esc($teaser).', log="", timestamp='.esc(time()).', format=1');
 
mysql_query('INSERT INTO fred_uc_products (nid,vid,model,sell_price,pkg_qty,default_qty,unique_hash,shippable) VALUES('.$nid.','.$nid.','.esc($model).','.esc($price).',1,1,'.esc(md5('qwerty'.$nid)).',1)');
 
# testimisel võib järgnevatelt ridadelt kommentaarid eemaldada, et korraga lisatakse vaid üks sissekanne		
#		if($i>=2)
#			break;
	}
}
fclose($fp);
 
 
function esc($v)
{
	return '"'.mysql_real_escape_string($v).'"';
}
 
?>
ok?
 
andmete_importimine_csv-failist_drupal_uebercarti.txt · Viimati muutnud: 2009/02/03 23:21 persoon laurik
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki