170 похожих чатов

А есть кто шарит хорошо. Пытаюсь остатки повесить в multitv,

уже часа 3 бьюсь не могу никак осилить. Как в json мне вставлять модели?
// Получение остатков из данных
$ostatki = $data['Остатки'];



foreach ($ostatki as $ostatok) {
// Получение модели и размера из текущего элемента остатков
$model = $ostatok['Модель'];
$razmer = $ostatok['ПолныйРазмерРост'];

// Объединение модели и размера
$modelRazmer = $model . $razmer;

// Поиск товара по модели в поле TV с ID = 3 и шаблоне с ID = 4
$query = $modx->db->select(
'contentid',
$modx->getFullTableName('site_tmplvar_contentvalues'),
"tmplvarid=3 AND LOWER(value) = '" . strtolower($model) . "'"
);
$contentId = $modx->db->getValue($query);

if (!$contentId) {
continue; // Пропускаем текущую итерацию, если товар не найден
}

// Проверка существования записи в MultiTV razmer_item с указанной моделью и размером
$query = $modx->db->select(
'contentid, value',
$modx->getFullTableName('site_tmplvar_contentvalues'),
"tmplvarid = 23 AND contentid = $contentId"
);
$row = $modx->db->getRow($query);

if ($row) {
// Обновление существующей записи в MultiTV razmer_item
$value = json_decode($row['value'], true);
$found = false;

// Поиск существующей записи с указанной моделью и размером
foreach ($value['fieldValue'] as &$field) {
$modelRazmerExisting = $field['model'] . $field['razmer'];
if ($modelRazmerExisting === $modelRazmer) {
// Обновление значения поля sklad
$field['sklad'] = $ostatok['Количество'];
$found = true;
break;
}
}

if ($found) {
// Обновление записи с обновленным значением
$modx->db->update(
['value' => json_encode($value)],
$modx->getFullTableName('site_tmplvar_contentvalues'),
"contentid = $contentId"
);
}
} else {
// Создание новой записи в MultiTV razmer_item
list($modelNew, $razmerNew) = explode('.', $modelRazmer, 2); // Разбиение строки на два разных поля

$modelRazmerValue = [
'model' => $modelNew,
'razmer' => $razmerNew,
'sklad' => $ostatok['Количество'],
'magazin' => '',
];

// Вставка записи в базу данных
$modx->db->insert(
[
'tmplvarid' => 23,
'contentid' => $contentId,
'value' => json_encode([
'fieldValue' => [$modelRazmerValue], // Обёртка элемента в массив
'fieldSettings' => ['autoincrement' => 1],
]),
],
$modx->getFullTableName('site_tmplvar_contentvalues')
);
}
} а вот и массив как они приходят Array
(
[Остатки] => Array
(
[0] => Array
(
[Модель] => 1067.2.3F
[Размер] => 42
[ПолныйРазмерРост] => 164-84
[Количество] => 8
[ФлагВыгружатьНаСайт0_0] =>
)

[1] => Array
(
[Модель] => 1067.2.3F
[Размер] => 42
[ПолныйРазмерРост] => 170-84
[Количество] => 4
[ФлагВыгружатьНаСайт0_0] =>
)

[2] => Array
(
[Модель] => 1067.2.3F
[Размер] => 44
[ПолныйРазмерРост] => 164-88
[Количество] => 1
[ФлагВыгружатьНаСайт0_0] =>
) берет только 1 размер первый...

6 ответов

19 просмотров

Советую ознакомиться: evoSearch

Зачем вообще поиск?

Sasha Beep
Зачем вообще поиск?

Советую ознакомиться: evoSearch

Вадим- Автор вопроса
Sasha Beep
Зачем вообще поиск?

Нельзя тупо вставлять, там еще с другого обмена остатки на магазинах придут вот сюда 'magazin' => '',

Вадим
Нельзя тупо вставлять, там еще с другого обмена ос...

вот похожий код для заполнения multitv Там в массив элементы добавляются $equipArr['fieldValue'][] = $eqTmpArr;

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта