Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать обновление данных в доп. полях?

Как сделать обновление данных в доп. полях?


     03.02.2018    дополнительные поля, дополнительное поле, Доп. Поля, доп.поля, доп.поле, работа с доп. полями работа с доп. полем, обновление данных в доп. полях    Общие вопросы по PHP, MySQL    433

вопрос
Всем привет.
Подскажите пожалуйста, как сделать обновить данные в доп. полях.

Имею доп. поле "price_eur" в него записываю цену в евро, и есть доп. поле "price" в него цену в грн.
С помощью скрипта делаю парсинг курса валют из json и умножаю значение из price_eur на текущий курс.

Умножаются сразу все значения и если вывести через echo, то всё работает правильно.
Но вот вопрос, как обновить сразу все значения в таблице _post в поле xfields price

Заранее благодарю

Вот сам код:

<?php

if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }

if(!$xflist) {
	$sql_result = $db->query( "SELECT xfields  FROM " . PREFIX . "_post WHERE approve=1" );
	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;
	}
}

// $sql_result = $db->query("UPDATE xfields  FROM " . PREFIX . "_post set price='$xflist'");


echo $xflist; - это для проверки добавил

$res = fopen('temp.php', 'wt'); - это у меня записывает вычисленные данные в файл 
fwrite($res, $xflist);
fclose($res);

?>

Ответа пока нет


1 комментарий

Nik_Dev
Юзер

Nik_Dev - 5 февраля 2018 15:13 -

Исправленный код.

<?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;
		$xfields_plus = $data[xfields].price|$xflist;
	}
}


   $db->query("UPDATE " . PREFIX . "_post SET xfields = MID(xfields, 16, 300)");

   $db->query( "UPDATE " . PREFIX . "_post SET xfields= CONCAT(xfields, '||price|', $xflist)");
  
  
// echo $xflist;

$res = fopen('temp.php', 'wt');
fwrite($res, $xflist);
fclose($res);


?>


Подскажите как сделать выбор цены не из всех полей, а из поля с определенным id

К примеру $sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE id=$id" );

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх