• Как вывести второе поле если первое пустое?

    Eridani
    @Eridani
    Мимо проходил
    'name' => ($result['short_name'] ? $result['short_name'] : $result['name']),
    Ответ написан
    1 комментарий
  • Как вывести второе поле если первое пустое?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    или покороче,
    'name' => $result['short_name'] ?: $result['name'],
    Ответ написан
    1 комментарий
  • Почему часть опций в opencart удаляется после сохранения?

    @Asokr
    Смотрите в сторону конфига php - max_input_vars

    Нужно увеличить этот параметр, есть много способов - последний из которых, написать в ТП хостинга...
    Для решения проблемы, нужно четко знать, что вы увеличили параметр одним из способов.
    В корне создайте файл php, и сделайте вывод
    phpinfo();
    Найдите max_input_vars, и попытайтесь его увеличить, например, через htaccess
    php_value max_input_vars 5000
    htaccess в корне сайта...
    Затем смотрите, изменилось ли значение, если нет, то другой способ, если по прежнему нет - то к хостеру...
    Ответ написан
    3 комментария
  • Как получить данные с БД за Н количество дней?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    PHP здесь вообще не нужен, мysql прекрасно умеет работать с датами сама.

    r.date_added > curdate() - interval 30 day

    И на будущее, никогда не использовать date() в условии.
    Ответ написан
    1 комментарий
  • Как получить данные с БД за Н количество дней?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Используй BETWEEN
    SELECT 
        *
    FROM 
        Orders
    WHERE 
        OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
    Ответ написан
    Комментировать
  • Как открывать ссылки пакетами?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Может есть вариант открывать например по 10 ссылок с интервалом 3 сек?

    setInterval()
    https://developer.mozilla.org/en-US/docs/Web/API/s...
    Ответ написан
    2 комментария
  • Как открывать ссылки пакетами?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    В твиге сначала собрать все ссылки в один JS массив. Тогда в вопросе покажем реальное общее количество ссылок, а не хардкодед "100".

    Можно просто зарядить таймауты с пачками ссылок:
    function LINKNAME() {
      const urls = [];
      {% if products %}
        {% for product in products %}
          {% for actione in product.actione %}
            {% if actione.url %}
              urls.push('{{ actione.url }}');
            {% endif %}
          {% endfor %}
        {% endfor %}
      {% endif %}
    
      const isOkay = confirm(`Открыть ${urls.length} вкладок?`);
      if (!isOkay){
        alert('Сообщение при отмене');
        return;
      }
      // открываем
      const batchSize = 5; // по сколько за 1 раз одновременно открывать
      const pause = 3; // пауза в секундах между пачками
      let iteration = 0;
    
      while (urls.length) {
        const batch = urls.splice(0, batchSize);
        setTimeout(() => batch.forEach(url => window.open(url)), iteration * pause * 1000);
        iteration++;
      }
    }
    А то можно бы с генератором..
    Ответ написан
    1 комментарий
  • Как правильно поместить JS в html.push?

    @FKV
    Просто добавтье в конец вашего js файла строку
    document.addEventListener('DOMContentLoaded',function(){let a=document.querySelector('[value="4285958269"]'),b=document.querySelector('[value="56132132"]');a.addEventListener("change",function(){b.checked=a.checked})})
    Ответ написан
  • Как правильно записать данные в базу?

    Adamos
    @Adamos
    UPDATE ${DB_PREFIX}product SET oct_stickers = 
    IF(product_id = ${productId} AND option_id IN ('10101', '10063'), 'My text', '');
    Ответ написан
    5 комментариев
  • Как одним запросом вытянуть две строки?

    iMedved2009
    @iMedved2009
    Не люблю людей
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE option_id = '1010' or option_id = '10102'")

    или
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE option_id in ('1010', '10102')")
    Ответ написан
    Комментировать
  • Как правильно сформировать запрос в MySql, не вижу ошибки?

    те... SQL должен вытащить ТОЛЬКО те категории где есть product_id'шники.... а те категории где product_id нет, не показвать.. так?
    Ответ написан
    5 комментариев
  • Как переносить строки в alert?

    @Cyber_bober
    alert(`строка 1 \n строка2`)
    Ответ написан
    Комментировать
  • Как добавить класс элементу когда другой скрылся вверху?

    XanXanXan
    @XanXanXan
    const panel = document.querySelector("#panel");
    const button = document.querySelector("#button");
    
    const buttonObserverCallback = (entries) => {
      entries.forEach(entry => {
        const isButtonAbove = entry.boundingClientRect.bottom < 0;
        panel.classList.toggle("d-hide", isButtonAbove);
      });
    };
    
    const intersectionObserver = new IntersectionObserver(buttonObserverCallback, {  threshold: 0 });
    intersectionObserver.observe(button);
    Ответ написан
    1 комментарий
  • Какой должен быть тип строки в БД для номера телефона, состоящего из одних цифр?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Насколько я понимаю, надо не только чистить для сохранения и последующего удобного использования, но и возвращать их на место при передаче данных обратно на сайт для отображения или корректировки, верно?

    Если так, то предлагаю с самим полем ничего не делать, пусть себе будет текстовое и со всякой фигнёй. А для использования создать ещё одно, вычисляемое, поле, в которое класть очищенное и приведённое к числовому значение.

    Т.е. если сейчас имеется
    CREATE TABLE users (
        ...
        phone VARCHAR(255),
        ....
    );

    то выполняем
    ALTER TABLE users ALGORITHM = INPLACE
        ADD COLUMN phone_num BIGINT UNSIGNED AS (REGEXP_REPLACE(phone, '[^0-9], ''')) VIRTUAL,
        INDEX idx_phone_num (phone_num);


    Что это даёт?

    Выражение вычисляемого поля чистит строковое значение от всего, что не цифра, после чего значение преобразуется в тип данных поля, т.е. BIGINT UNSIGNED. Отлично, число получено.

    Поле объявлено как VIRTUAL. Это означает, что его значение не хранится в таблице, а вычисляется каждый раз, когда оно потребуется. Но мы создаём по этому полю индекс. Соответственно сервер может не вычислять значение, а извлечь его из индекса. Ещё лучше, если это поле будет включено в композитные индексы вместо поля phone - тогда вероятность, что сервер будет извлекать значение из индекса, увеличится.

    Конечно, можно было бы сделать поле STORED и не морочиться с индексом. Но тогда процесс изменения структуры таблицы будет достаточно длительным, потому что такая операция не может быть INPLACE и требует COPY. Впрочем, это может оказаться более подходящим в определённых условиях.

    Да, следует помнить, что в это поле нельзя записывать значения ни при INSERT, ни при UPDATE - такая операция приведёт к ошибке. Так что про запросы без указания списка полей придётся забыть... ну и SELECT * - тоже забыть.
    Ответ написан
    Комментировать
  • Какой должен быть тип строки в БД для номера телефона, состоящего из одних цифр?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    То что вы хотите не является задачей базы данных. Эта работа должна выполнятся в коде программы предшествующем сохранению в базу
    Ответ написан
    Комментировать
  • Как очистить textarea от heml тегов?

    @mletov
    Первое, что приходит на ум:
    - Хранить в проекте 2 копии ckeditor с разными конфигами и в зависимости от url подключать нужную
    - В теле кофига (там вроде js, если мне не изменяет память) проверять url и подпихивать разные настройки

    Возможно, есть и более грамотный вариант, это так, самое очевидное

    UPDATE:
    Гугланул, там вроде путь к кофигу можно прописывать при инициализации
    https://ckeditor.com/docs/ckeditor4/latest/guide/d...

    Тогда еще проще, проверяете url и подставляете путь к нужному кофигу
    Ответ написан
    Комментировать
  • Как округлить число до сотых в input?

    @Karpion
    Умножить на сто. Округлить до целого - тут есть несколько вариантов. И разделить на сто.

    Округлять лучше до ближайшего целого. Это можно так:
    Прибавить 0.5. Округлить до целого вниз. Вычесть 0.5.

    Или можно преобразовать число в строку и оперировать со строкой. Но надо помнить - число может оказаться в плавающей форме.
    Ответ написан
    Комментировать
  • Как разделить на десятые если они попадают?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Рекомендую серьезно изучить основы программирования и в частности программирование на Java. Разберитесь с такими понятиями, как динамическая и статическая типизация.
    Java является языком со статической типизацией. Это означает, что тип переменной объявляется в момент ее объявления. Также рекомендую прочитать про такие понятия. как явное и неявное приведение типов.
    Исходя из вышесказанного непонятно следующее:
    а если в porci2 попадается число с десятыми или сотыми, то приложение вылетает...

    Откуда прилетает число с десятыми и сотыми в переменную porci2 или input1 ?
    Подозреваю, что значения porci2 и input1 являются неким int или long значением, а извне вы присваиваете этим переменным вещественный тип чисел. Если так, то для этип переменных используйте тип double и это должно решить проблему.
    Ответ написан
    7 комментариев
  • Как сделать расчет трех TextView?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    TextView это не просто какое-то значение, это объект, у которого кроме его значения есть координаты на экране, размеры и еще куча всяких параметров, поэтому вы не можете его просто умножить.
    Методом setText вы установили новое значение, которое будет отображать TextViev
    Методом getText() вы можете получить его значение, но в виде CharSequence который можете преобразовать в строку String. Но со строкой вы не сможете делать математические действия, поэтому её надо преобразовать в числовое значение, например Integer:
    Integer.valueOf(insulin.getText().toString());
    Но, так делать не правильно. Данные нужно хранить отдельно от отображения. У вас в коде должны быть переменные, которые имеют нужные вам числовые типы, а в TextView только отображаются значения этих переменных. Тогда для выполнения нужных вам вычислений, или для сохранения значений вам не нужно будет получать значения из TextView, они уже будут вам доступны в виде ваших переменных.
    Ответ написан
    Комментировать
  • Как сделать расчет трех TextView?

    Rebel-Cat
    @Rebel-Cat
    Неужели умножить переменные сложнее чем вклинить базу в программу?
    Тебе нужна точка обработки логики кнопка(Button) или слушатель на editText.
    Тут с кнопкой
    Создаешь кнопку соединяешь её с кнопкой xml, вешаешь на неё слушателя(setOnClicktListener в общем это метод кнопки), где обрабатываешь логику.
    там же выводишь текстВью.setText(Integer.valueOf(getText().toString * Integer.valueOf(имяОбъектаЕдитТекст.getText().toString())) Тут просто умножено значение поля EditText на значение TextView и сохранено в TextView и так для 3х твоих тексВью
    И вот ты нахал на кнопку и изменения вступят в силу

    А можно на едитТекст повесить и когда там например нажмешь ентер то изменения вступят вот ссылка там много разных слушателей https://dolbodub.blogspot.com/2013/03/edittext.html

    Если вдруг не сможешь сделать я тебе персонально напишу код с пояснениями
    Ответ написан
    Комментировать