вопрос
Есть созданные три дополнительных поля (label1, label2, label3)/ Необходимо продублировать данные из label2 в label1
Каким образом это возможно провернуть? Вручную очень долго, в базе несколько тысяч позицию.
Каким образом это возможно провернуть? Вручную очень долго, в базе несколько тысяч позицию.
Можно скриптом, можно в init.php прописать пару строк и пройтись перепубликацией.
Скрипт лови.
Скрипт лови.
<?php
ini_set('memory_limit', '512M');
ini_set('display_errors', 1);
error_reporting(1);
ini_set('max_input_time', '200000');
define ( "DATALIFEENGINE", true );
set_time_limit(0);
header("Content-Type: text/html;charset=utf-8");
require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/classes/mysql.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/modules/functions.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/data/dbconfig.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/data/config.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/api/api.class.php';
$sql = $db->query("SELECT id, xfields FROM ".PREFIX."_post");
while ( $row = $db->get_row ($sql) ) {
$xfields_array = array();
foreach ( explode('||',$row['xfields']) as $pac_xfields ) {
$s_all = explode('|',$pac_xfields);
$xfields_array[$s_all[0]] = $s_all[1];
}
$xfields_array['label1'] = $xfields_array['label2'];
$xfields = array();
foreach ( $xfields_array as $key => $value ) { if ($value!=''){$xfields[] = $key.'|'.str_replace('|','|',$value);} }
$xfields = addslashes(implode("||",$xfields));
$db->query("UPDATE ".PREFIX."_post SET xfields='".$xfields."' WHERE id='".$row['id']."'");
}
?>