Есть столбик 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 из первой попавшейся столбца и записывает во все остальные.
А цена везде разная.
Надеюсь, что теперь немного понятней стало )
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники