Задать вопрос
  • Как отслеживать новые записи в бд и выводить их на экран без перезагрузки страницы?

    @99-rus
    Подскажите пожалуйста, чтобы запросы постоянно не слались, я остановил setInterval методом clearInterval, передав ему id setInterval потому что ответ от сервера при отсутствии нового сообщения постоянно пишет empty string когда в консоли выводу response, а как тогда снова возобновить setInterval при новом сообщении ведь функция очистилась, обнулилась...
    Написано
  • Как найти в строке текст который содержит спецсимволы с помощью регулярного выражения?

    @99-rus Автор вопроса
    Виктор,

    если не доставать отдельно имена товаров на сайте, можно собрать артикулы с товаров поставщика в один массив, пройтись по товарам на сайте и проверить in_array($item['name'], $supplierNames, true)

    $itemAll['name'] - не массив. тьфу ты блин...)))
    получается что $companyItems, // на сайте массив должен быть?
    $supplierItems // от поставщика - и это тоже массив?
    Да в любом случае, массивы то разные!
    Дык чтобы мне проверить через in_array, мне нужно сперва отсечь у поставщика от названия товара ненужные слова, по типу: Сплит-система, Блок внутренний, Блок наружный и т.д...
    Ошибок не видно...
    Написано
  • Как найти в строке текст который содержит спецсимволы с помощью регулярного выражения?

    @99-rus Автор вопроса
    Виктор, не, сайт не запускается даже
    var_dump(
                        array_intersect(
                            $itemAll['name'],
                            array_map(
                                function ($item) {
                                    $parts = explode(' ', $item);
                                    return end($parts);
                                },
                                $valKlimatprof['NAME']
                            ),
                        )
                    );
    Написано
  • Как найти в строке текст который содержит спецсимволы с помощью регулярного выражения?

    @99-rus Автор вопроса
    Спасибо за пример, но! Сайт использует версию php 5 и нельзя в ф-ции использовать любую другую, иначе ошибка..., в вашем примере ф-ция function (string $item)...
    Написано
  • Как найти в строке текст который содержит спецсимволы с помощью регулярного выражения?

    @99-rus Автор вопроса
    Дмитрий, Ну вроде все понятно же..., хорошо, еще раз:
    массив от поставщика:
    Сплит-система T18H-ILC/I/TF05P-LC/T18H-ILU/O
    Блок внутренний T09H-SnN2/I
    Блок наружный T14H-FMA/O
    Сплит-система T12H-SLyR2/I/T12H-SLyR2/O
    Сплит-система QV-I24FG1/QN-I24UG1
    Сплит-система QV-SR18WA/QN-SR18WA
    Блок наружный T42H-FMA2/O
    Сплит-система LS-HE18TWE2/LU-HE18UWE2
    Блок внутренний LS-MHE24KCE2
    Сплит-система QV-CA24WA/QN-CA24WA
    Сплит-система T24H-SLyW/I/T24H-SLyW/O
    Сплит-система T18H-SNE/I/T18H-SNE/O
    Сплит-система T24H-SNE/I/T24H-SNE/O

    массив на сайте:
    T18H-ILC/I/TF05P-LC/T18H-ILU/O
    T09H-SnN2/I
    T14H-FMA/O
    T12H-SLyR2/I/T12H-SLyR2/O
    QV-I24FG1/QN-I24UG1
    QV-SR18WA/QN-SR18WA
    T42H-FMA2/O
    LS-HE18TWE2/LU-HE18UWE2
    LS-MHE24KCE2
    QV-CA24WA/QN-CA24WA
    T24H-SLyW/I/T24H-SLyW/O
    T18H-SNE/I/T18H-SNE/O
    T24H-SNE/I/T24H-SNE/O
    Написано
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    @99-rus Автор вопроса
    ThunderCat, Хорошо, в принципе как вариант - спасибо, буду иметь ввиду.
    Но вопрос все равно остается открытым:
    1. Обновляем кол-во и цену от поставщика, добавили id_товара и id_поставщика, допустим.
    2. Следующее обновление - нету этого id_товара у поставщика - что делаем?
    Я же сначала делаю запрос в бд на основе товаров от поставщика - вытащи мне товары с бд, где id_товаров в бд = список id_товаров от поставщика, чтобы потом обновить только эти товары.
    Но что делать, если в этом списке отсутствуют те id, которые были ранее обновлены у меня в бд? Искать через in_array, array_search, или еще как? Как понять какие именно id отсутствуют чтобы у них кол-во поставить в 0?
    P.S. хотя не, сейчас подумал, не вариант. Изначально id от поставщиков нету в бд и какие товары обновлять коду будет неизвестно, а заносить туда эти id чтобы потом по ним обновлять - тоже не вариант, потому что полгода, год буду заносить, пока все товары не занесутся с id, а потом они возьмут и добавят новые товары, которые будут у нас в бд, но id которых не будет от поставщика - как итог ничего не обновится :(
    Написано
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    @99-rus Автор вопроса
    ThunderCat, Еще раз: не все товары обновляются через API и да, забыл уточнить еще одна немаловажная деталь - поставщиков пока три, но может быть и более, id которых могут пересекаться и совпадать, а товары при этом разные.
    Написано
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    @99-rus Автор вопроса
    Логично потому что товары не все приходят от поставщиков, представьте себе если придет id от поставщика, который есть уже в бд, но от другого товара - в этом случае тоже будет лажа..., именно поэтому кроме как на название товара опираться не на что. Да, согласен, если в названии товара произойдут изменения у поставщика, то это будет не очень хорошо, но не для бд, т.к. делаю выборку только тех товаров, имена которых совпадают в бд. В этом случае просто товар не обновится на сайте и всё, но тоже приятного мало.
    Написано
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    @99-rus Автор вопроса
    Не очень понятно...
    Что я делаю, попробую объяснить еще раз:
    1) Делаю запрос к API, получаю список артикулов, которые эквивалентны названиям товаров в бд.
    2) Сохраняю список в строку ('art1', 'art2', 'art3'); etc...
    3) Вытаскиваю из бд товары, которые соответствуют этой строке:
    "SELECT `id`, `name`, `price`, `count` FROM `table` WHERE `name` in('art1', 'art2', 'art3')";

    4) Затем обновляю в бд:
    // тут цикл foreach начало
    $price = floatval($item['price']['ric']);
    $name = $itemName['name'];
    $sqlPartName .= ($sqlPartName == '') ? "'$name'":','."'$name'";
    $casePrice .= " WHEN '$name' THEN '$price'";

    // тут цикл foreach конец
    "UPDATE `table` set `price` = (CASE `name` $casePrice END) WHERE `name` IN ($sqlPartName)";
    Написано
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    @99-rus Автор вопроса
    1) id с API и id в бд не совпадают - это логично.
    2) я составляю список артикулов полученных через API, они эквивалентны названиям товаров в бд и делаю запрос в бд, чтобы получить список обновляемых товаров, а уже потом обновляю.
    Новые - не добавляю, только обновляю уже имеющиеся - кол-во и цену.
    Написано
  • Обновление таблицы в бд данными, которые когда-то были, но теперь отсутствуют - как?

    @99-rus Автор вопроса
    Ну во-первых, к "бизнесу" мы уже обращались (т.е. к поставщикам), они не могут, или не хотят показывать товары, у которых count = 0 и/или price = 0, они просто убирают эти товары из показа.
    Во-вторых, у нас на сайте так - если кол-во товаров 0, то мы их все-равно показываем на сайте, просто статус ставим в "под заказ", поэтому и нужно какое-то решение, типа: если товар когда-то был обновлен через поставщика, но в этот раз его в списке просто нет, то поставить ему кол-во 0, при этом статус поставить в "под заказ". Цена при этом не обновляется, а остается той, которая была когда последний раз обновляли от поставщика.
    Написано
  • Присвоить значение массива переменной?

    @99-rus Автор вопроса
    Ну так Иванов Иван Иванович и есть ключ. Почему нельзя по нему обратиться?

    В массиве который я привел видно что это не ключ, а значение.
    И как вы вообще будете знать, какой ключ ставить - а или б?

    Если б знал, я бы сюда не пришел задавать вопросы)
    или вам надо для любой даты обоих получить?

    И да и нет, потому что в какой-то дате могут быть оба, может быть один из них, при чем в разных порядках. Только дело в том, что в том массиве что я привел, (с именами который) - даты не все будут совпадать с датами, которые в другом массиве. Пример:
    Array
    (
        [0] => 01.06.2024
        [1] => 02.06.2024
        [2] => 03.06.2024
        [3] => 04.06.2024
        [4] => 05.06.2024
        [5] => 06.06.2024
        [6] => 07.06.2024
        [7] => 08.06.2024
        // ...etc
    )

    но думаю это не должно вызвать проблем...
    Хорошо, а что вы предлагаете тогда? Как мне по другому идентифицировать/обратиться к конкретному имени?
    Написано
  • Присвоить значение массива переменной?

    @99-rus Автор вопроса
    Можно не переменные, можно ключи, но суть в том, чтобы как-то идентифицировать любого из них в другом массиве с датами.
    Не знаю, может как-то не правильно объясняю..., попробую еще раз:
    Есть массив с именами, и есть массив с датами. Задача сохранить имена таким образом, чтобы я смог к любому из них обратиться в массиве с датами по определенному ключу:
    // Массив с датами
    foreach($date as $val){
      echo $name[$val]['a']; // Выведет Иванов Иван Иванович
      echo $name[$val]['b']; // Выведет Петров Петр Петрович
    }
    Написано
  • Присвоить значение массива переменной?

    @99-rus Автор вопроса
    Ипатьев, Нет, именно переменным, в дальнейшем я хочу их использовать в другом участке кода.
    Что-то типа:
    $a = 'Иванов Иван Иванович';
    $b = 'Петров Петр Петрович';
    Написано
  • Передать данные пришедшие через ajax из одной функции php в другую?

    @99-rus Автор вопроса
    В примерах весь код в рамках одного класса находится.
    Пробовал потестировать, получилось как-то так:
    <?php
    
    class Basket
    {
        public function testPostDate()
        {
            if (!empty($_POST['dateMontazh'])) {
                $date_montazh = $_POST['dateMontazh'];
                $this->printDate($date_montazh);
            }
        }
    
        public function printDate($data)
        {
            echo $data;
        }
    }
    
    $test = new Basket();
    $test->testPostDate();

    Все работает, но это не то! Тут нет доп. параметров, которые передаются в ф-циях и всего две ф-ции...
    Просто подумал что по данному принципу смогу, но что-то запутался...
    Пробовал сразу передавать в ф-цию getMonthMontazh() в которой и нужно сохранить дату, но когда она вызывается в ф-ции: getIntervalMontazh() - тут она уже теряется.
    Написано
  • Как отредактировать свойство товара битрикс?

    @99-rus Автор вопроса
    /bitrix/modules/iblock/admin/iblock_edit.php - вот в этом файле надо было изменить кнопку, моет кому пригодится инфа...
    Дмитрий, спасибо вам за то, что пытались мне помочь!
  • Как отредактировать свойство товара битрикс?

    @99-rus Автор вопроса
    Помогли мне, вот из-за чего походу кнопка не срабатывала:
    5b0da9deb0c31127089401.png
    Чтобы была реакция и появлялся диалог должно срабатывать это условие, т.е. у нашей кнопки должен быть атрибут data-propid , а его нет :

    Теперь вопрос: а где отредактировать эту кнопку и добавить туда атрибут data-propid?
  • Как отредактировать свойство товара битрикс?

    @99-rus Автор вопроса
    Дмитрий Ларин, А подскажите пожалуйста, на какие (хотя бы примерно) настройки сервера смахивает?
    Просто что бы понимать предмет диалога с хостером...
  • Как отредактировать свойство товара битрикс?

    @99-rus Автор вопроса
    Ничего не происходит - никакой реакции.
    Если просто заходишь на страницу ошибки, потом открываешь консоль, то показывает вот это:
    5b0d3fddbfd7d162742479.png
    Во вкладке сеть при этом так же ничего не показывает если нажать кнопку, но после обновления страницы при открытой консоли показывает уже другое:
    5b0d40351f6aa170706976.png
  • Как отредактировать свойство товара битрикс?

    @99-rus Автор вопроса
    Пробовал разными браузерами: хром, фаерфокс, ие... - все тоже самое.
    На том же хостинге есть еще один сайт на битрикс, редакция та же - малый бизнес, но более новая - там все работает. Да и на этом сайте тоже все работало до поры до времени...
    Во вкладке сеть вот что показывает:
    5b0d3740b8407461902588.png