Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помогите поправить PHP-код


kamar87

Recommended Posts

Есть скрипт который используется для обновления остатков\цен магазина. При выполнении его в error_log записываются ошибки:

 

Цитата

PHP Notice:  Undefined index: id in /home/rastyby/site.by/zms-api-update-prices.php on line 39
PHP Notice:  Undefined index: quantity in /home/rastyby/site.by/zms-api-update-prices.php on line 43

 

Вот сам скрипт... Причем он работает корректно.

<?php 

error_reporting(E_ALL | E_STRICT) ;
ini_set('display_errors', 'On');

require "config.php";

echo 'Connecting to DB'. '<br/>';

$conn=mysql_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD) or die ("Не могу создать соединение");
mysql_select_db(DB_DATABASE) or die (mysql_error());

$ZMS_KEY = ''; //zoomos api key
$url = 'http://api.export.zoomos.by/pricelist?key='.$ZMS_KEY;

echo 'Downloading JSON from '.$url. '<br/>';

$json = file_get_contents($url);

$obj = json_decode($json,true);

$err = json_last_error();

if ($err) {
	echo 'Error while parsing json: ' . $err . '<br/>';
	die();
}

echo 'Rows count: '.sizeof($obj). '<br/>';


$i = 0;

$ids = array();

foreach ($obj as $key => $row) 
{

	$id = $row['id'];
	$shopsId = $row['shopsId'];
	$status = $row['status'];
	$price = $row['price'];
	$quantity = $row['quantity'];

	echo $i . ' of '.sizeof($obj). ': ' . $id .  '<br/>';

	if ($shopsId) {

		$q = "update ".DB_PREFIX."product set quantity = ".($quantity == 1 && $price > 0 ? "0" : "10").", price = ".$price." where product_id = ".$shopsId;
		
		executeUpdate($q, $conn);
				
//		$q = "update product_shop set price = ".$price.", wholesale_price = ".$price.", active = ".($status == 1 && $price > 0 ? "1" : "0").", date_upd = current_timestamp where zoomos_id = ".$id;
		
//		executeUpdate($q, $conn);
		

		array_push($ids, $id);
	}

	
	$i++;
}

	$q = "update product set active = 0 where zoomos_id not in (".implode(",", $ids).")";
	executeUpdate($q, $conn);

//	$q = "update product_shop set active = 0 where zoomos_id not in (".implode(",", $ids).")";
//	executeUpdate($q, $conn);



function executeUpdate($q, $conn) {

	echo $q .  '<br/>';

	if (mysql_query($q, $conn)) {
	    echo "Record updated successfully";
	} else {
	    echo "Error updating record: " . mysql_error($conn);
	}

	echo '<br/>';

}

?>

Помогите пожалуйста поправить его.

Надіслати
Поділитися на інших сайтах


Сделайте распечатку массива, получаемого в этой строчке:

 

4 часа назад, kamar87 сказал:

$obj = json_decode($json,true);

 

Скрипт говорит, что там не хватает индексов id и quantity. Могу предположить, что эти индексы в большинстве случаев есть, а где-то их нет.

Надіслати
Поділитися на інших сайтах

14 часов назад, druzhkov сказал:

Сделайте распечатку массива, получаемого в этой строчке:

 

 

Скрипт говорит, что там не хватает индексов id и quantity. Могу предположить, что эти индексы в большинстве случаев есть, а где-то их нет.

как это сделать?

Надіслати
Поділитися на інших сайтах


2 часа назад, druzhkov сказал:

 

как обычно:


echo '<pre>';
print_r($obj);
echo '</pre>';

 

[0] => Array
        (
            [shopsId] => 17392
            [vendorName] => Bear Grylls
            [model] => Компас Bear Grylls (31-001777)
            [linkRewrite] => kompas-bear-grylls-31-001777
            [price] => 9.29
            [priceCurrency] => BYN
            [status] => 1
            [isNew] => 0
            [isPriceFixed] => 0
            [supplierInfo] => Array
                (
                    [id] => 3375
                    [name] => Рнструменткомплект
                    [itemId] => 918110
                    [model] => Компас Bear Grylls (31-001777)
                    [modelCode] => 31-001777
                    [price] => 10.1
                    [priceCurrency] => BYN
                    [priceConverted] => 10.1
                    [priceDiscounted] => 10.1
                    [priceCalculated] => 9.29
                    [priceCalculatedMin] => -99989.9
                    [isWholesalePrice] => 1
                    [quantity] => 10 дней
                    [status] => 1
                    [dateAddMillis] => 1501653566000
                )

            [dateAddMillis] => 1501505929000
            [dateUpdMillis] => 1501669366000
        )

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.