вопрос
Здравствуйте.
Подскажите пожалуйста, как сделать выбор из доп. полей по id.
Содержание такое:
Выбираю цену из price_eur, умножаю на число которое содержится в json (курс валют от банка) и после удаляю цену из price и записываю новое значение.
Как мне сделать, чтобы цена бралась из каждого id и записывалась в тот же id.
Приведу пример:
Беру цену в price_eur из id 39, умножаю на число из json, удаляю цену в price|1401750| и делаю запись её с новым значением. Запись выглядела так:
Как мне сделать, чтобы price_eur которое в столбце xfields бралось к примеру из столбца id 39 умножалось на число из json и записывалось обратно в строку с id 39. То есть сделать проверку по id для каждой записи.
То есть чтобы откуда взяло число туда и записало. Чтобы была проверка по id. Иначе оно берет price_eur из первого попавшегося столбца и записывает во все остальные.
Представляю себе примерно так это реализовать:
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE id=$id");
Подскажите пожалуйста, как сделать проверку по id.
Вот сам код (измененный модуль xflis)t :
Подскажите пожалуйста, как сделать выбор из доп. полей по id.
Содержание такое:
price|2554644||price_eur|71800||code|Volvo||year|2011||on|1
Выбираю цену из price_eur, умножаю на число которое содержится в json (курс валют от банка) и после удаляю цену из price и записываю новое значение.
Как мне сделать, чтобы цена бралась из каждого id и записывалась в тот же id.
Приведу пример:
Беру цену в price_eur из id 39, умножаю на число из json, удаляю цену в price|1401750| и делаю запись её с новым значением. Запись выглядела так:
price|1401750||price_eur|40050||code|Manitou||year|2007||on|1
, а после манипуляций так: price_eur|40050||code|Manitou||year|2007||on|1||price|1377720Как мне сделать, чтобы price_eur которое в столбце xfields бралось к примеру из столбца id 39 умножалось на число из json и записывалось обратно в строку с id 39. То есть сделать проверку по id для каждой записи.
То есть чтобы откуда взяло число туда и записало. Чтобы была проверка по id. Иначе оно берет price_eur из первого попавшегося столбца и записывает во все остальные.
Представляю себе примерно так это реализовать:
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE id=$id");
Подскажите пожалуйста, как сделать проверку по id.
Вот сам код (измененный модуль xflis)t :
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }
if(!$xflist) {
$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post" );
while ( $rows = $db->get_row( $sql_result ) ) {
$xfields[] = $rows;
}
$stack = array();
foreach($xfields as $value){
if($value[xfields]){
$row = xfieldsdataload($value[xfields]);
if($row[price_eur]){
$rowdata = explode( "|", $row[price_eur]);
foreach($rowdata as $value){
if($value){
$value = trim($value);
array_unshift($stack, $value);
}
}
}
}
}
$json = file_get_contents('https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5');
$data = json_decode($json, true);
$buy_eur = $data[1]['buy'] ;
$stack = array_unique($stack);
sort ($stack);
foreach( $stack as $value ){
$xflist = $value * $buy_eur;
}
}
$db->query("UPDATE dle_post SET xfields = REPLACE(xfields, CONCAT ('price|', SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, 'price|', -1 ) , '||', 1 )), '')");
$db->query( "UPDATE " . PREFIX . "_post SET xfields= CONCAT(xfields, '||price|', $xflist)");
?>