muxoh 18 ноября 2007 в 3:51 Делаю загрузку базы из csv файла... Как загружать текстовые поля разобрался. Но как графичексие поля заполнить, пока не догоняю. Подскажите, люди добрые... Блог Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Dimm 18 ноября 2007 в 15:53 Разбирайся: Читал строки из таблицы с прошлого сайта и заполнял таблицы друпала files и content_type_product, одновременно копировал файлы в нужную папку. Не забудь почистить cache_content <?php $host_name = 'localhost'; $user_name = 'root'; $user_pass = ''; $db_name = 'km3'; $table_name = 'products'; $file_name = 'images.cvs'; $link = mysql_connect($host_name, $user_name, $user_pass) or die('Could not connect: ' . mysql_error()); mysql_select_db($db_name) or die('Could not select database'); $query = 'SELECT * FROM `content_type_product` '; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); //echo '' . "\n"; $xml_data = ''; $i = 0; while ($line = mysql_fetch_array($result)) { $data=$line[field_products_image_import_value]; if($data!=''){ echo "./img/$data\n"; echo file_directory_path() ."/images/products/$data\n\n"; // $node = node_load($line[nid]); $file_temp = file_get_contents("./img/$data"); $file_temp = file_save_data($file_temp, file_directory_path() ."/images/products/$data", FILE_EXISTS_RENAME); $file_fid = db_next_id('{files}_fid'); db_query("INSERT into {files} (fid, nid, filename, filepath, filemime, filesize) VALUES (%d, %d, '%s','%s','%s',%d)", $file_fid, $line[nid], $data, $file_temp, 'image/jpeg', filesize($file_temp)); //print " "; //print_r($file_temp); //print ""; // node_save($node); $query_upd = "UPDATE `content_type_product` SET `field_products_image_fid` = '$file_fid', `field_products_image_alt` = '$data', `field_products_image_title` = '$data' WHERE `nid` = '$line[nid]' "; $result_upd = mysql_query($query_upd) or die('Query failed: ' . mysql_error()); $xml_data .= '"'.$query_upd.'",'; echo $query_upd; $xml_data .= "\n"; } // $xml_data .= '"'.print_r($line).'",'; } $query_clear = "TRUNCATE TABLE `cache_content`"; $result_clear = mysql_query($query_clear) or die('Query failed: ' . mysql_error()); //$xml_data .= ""; echo htmlspecialchars($xml_data); echo ''; mysql_free_result($result); mysql_close($link); ?>
Комментарии
Разбирайся:
Читал строки из таблицы с прошлого сайта и заполнял таблицы друпала files и content_type_product, одновременно копировал файлы в нужную папку.
Не забудь почистить cache_content
<?php
$host_name = 'localhost';
$user_name = 'root';
$user_pass = '';
$db_name = 'km3';
$table_name = 'products';
$file_name = 'images.cvs';
$link = mysql_connect($host_name, $user_name, $user_pass) or die('Could not connect: ' . mysql_error());
mysql_select_db($db_name) or die('Could not select database');
$query = 'SELECT * FROM `content_type_product` ';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
//echo '' . "\n";
$xml_data = '';
$i = 0;
while ($line = mysql_fetch_array($result)) {
$data=$line[field_products_image_import_value];
if($data!=''){
echo "./img/$data\n";
echo file_directory_path() ."/images/products/$data\n\n";
// $node = node_load($line[nid]);
$file_temp = file_get_contents("./img/$data");
$file_temp = file_save_data($file_temp, file_directory_path() ."/images/products/$data", FILE_EXISTS_RENAME);
$file_fid = db_next_id('{files}_fid');
db_query("INSERT into {files} (fid, nid, filename, filepath, filemime, filesize)
VALUES (%d, %d, '%s','%s','%s',%d)",
$file_fid, $line[nid], $data, $file_temp, 'image/jpeg', filesize($file_temp));
//print "
";
// node_save($node);
$query_upd = "UPDATE `content_type_product` SET
`field_products_image_fid` = '$file_fid',
`field_products_image_alt` = '$data',
`field_products_image_title` = '$data'
WHERE `nid` = '$line[nid]' ";
$result_upd = mysql_query($query_upd) or die('Query failed: ' . mysql_error());
$xml_data .= '"'.$query_upd.'",';
echo $query_upd;
$xml_data .= "\n";
}
// $xml_data .= '"'.print_r($line).'",';
}
$query_clear = "TRUNCATE TABLE `cache_content`";
$result_clear = mysql_query($query_clear) or die('Query failed: ' . mysql_error());
//$xml_data .= "";
echo htmlspecialchars($xml_data);
echo '';
mysql_free_result($result);
mysql_close($link);
?>