Есть столбик xfields, в котором присутствует подобное содержание:
price | 2554644 |
price_eur | 71800 |
code | Volvo |
year | 2011 |
on | 1 |
Я проделываю такую операцию - делаю парсинг курса валют из json и умножаю число из "price_eur", то есть 71800, и записываю его обратно. Перед этим делаю запрос в БД на удаление старой цены price|2554644|
, и через CONCAT
дописываю новое значение.
Проблема в том, что, к примеру, число из price_eur
берется из первой записи, и поэтому при обновлении у всех цена становится одинаковой.
Суть вопроса - как сделать запись цены для каждой таблицы отдельно? Думаю сделать через проверку id записи.
Подскажите, как это можно сделать?
То есть что бы запись выполнялась так
UPDATE " . PREFIX . "_post SET xfields= CONCAT(xfields, '||price|', $xflist WHERE id=$id);
Может быть не правильно изложил суть вопроса, но по другому не знаю как написать. Если что, то могу приложить сриншоты, чтобы было понятней.
Прилагаю целый код:
<?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)");
?>
UPD:
Прилагаю фото
Как мне сделать, чтобы price_eur
которое в столбце xfields бралось к примеру из столбца id 39
умножалось на число из json и записывалось обратно в строку с id 39
.
То есть чтобы откуда взяло число туда и записало. Чтобы была проверка по id.
Иначе оно берет price_eur
из первой попавшейся столбца и записывает во все остальные.
А цена везде разная.
Надеюсь, что теперь немного понятней стало )
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
In the example below, the file is sent as a stringIs it possible to send a file as a binary data via Guzzle? I mean, send the file as is, without reading
В PHP не силён вовсеЗнаю, что вопрос решается через preg_replace, но как точно?
В документации pchart для drawFromJPG можно изменять только отступ картинкиА можно ли изменить размер передаваемой картинки? К примеру уменьшить...