Задать вопрос
  • Как посчитать количество за час?

    erge
    @erge
    Примус починяю
    SELECT
        DATE_FORMAT(FROM_UNIXTIME(`VisitTime`), '%Y-%m-%d %H:00:00') AS visit_time,
        COUNT(DISTINCT `MacValue`) AS mac_cnt
      FROM `point`
      GROUP BY 1;
    Ответ написан
  • Как проверить форму в jquery?

    erge
    @erge
    Примус починяю
    В функцию обработки клика по кнопке
    $('.popup-button').on('click', function () {
        $('.popup-thanks').fadeIn(),
          $('.popup-callback').fadeOut();
      });


    вставить проверку обязательных полей формы.
    и выполнять блок
    $('.popup-thanks').fadeIn(),
          $('.popup-callback').fadeOut();

    только если заполнены обязательные поля.

    UPD:
    как-то так:
    $('.popup-button').on('click', function () {
        if (
            // проверка заполнения имени
            $(".popup-input-name").val().length > 1 &&
            // проверка корректного заполнения телефона
            /^\+?7[ -]?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{2}[ -]?\d{2}$/.test( $(".popup-input-phone").val() ) &&
            // проверка корректного заполнения e-mail
            /^[a-z0-9\-\.]+@[a-z0-9\-\.]+\.[a-z]+$/i.test( $(".popup-input-mail").val() )
           ) {
            $('.popup-thanks').fadeIn(),
            $('.popup-callback').fadeOut();
        } else {
            alert ("Просьба корректно заполнить поля формы");
        }
      });


    PS: Вместо алерта можно вставить отображение модального окна с соответствующим текстом.
    Ответ написан
  • Можно ли сделать домашний ftp сервер из старого пк?

    erge
    @erge
    Примус починяю
    Подойдет, но энергопотребление у зиона не очень 65Вт
    Intel® Xeon® Processor 3065
    Вся система будет потреблять порядка 80Вт не меньше, если не жалко, то норм.
    (в среднем по электричеству 230-250 руб в мес., если в режиме 24/7)

    А так, имхо, лучше на Atom это крутить, у них всего 10-15Вт потребление.

    PS: имхо тяжелая часть SPRUT.io это интерфейс, который выполняется на стороне клиента, так что и заявленного зиона и атома хватит более чем.
    Ответ написан
    Комментировать
  • Как получить строки из таблицы MySQL если в другой нет строки с определенным ключом?

    erge
    @erge
    Примус починяю
    См. SQL JOINS
    Visual_SQL_JOINS_V2.png

    SELECT t1.* 
      FROM primary_tbl t1
      LEFT JOIN second_tbl t2 ON t2.pid=t1.id
      WHERE t2.pid IS NULL
        AND t1.key='file_name'
    Ответ написан
  • Есть ли такие сервисы, которые возвращают по запросу информацию о браузере?

    erge
    @erge
    Примус починяю
    https://2ip.ru/browser-info/
    https://www.whatsmybrowser.org/
    и т.п.
    в текстовом виде не встречал, но мне кажется html распарсить вообще труда не составляет (регулярные выражения)
    Ответ написан
    1 комментарий
  • Как запустить программу, но не на моем слабом компе?

    erge
    @erge
    Примус починяю
    есть, гугл в помощь!

    вот первые из попавшегося в списке:
    Облачные серверы с GPU
    cloud4y

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

    erge
    @erge
    Примус починяю
    Более того можно совмещать "очную" работу (по найму) и фриланс, так же "очную" работу и ИП
    и пр. варианты.
    Но как правило, одно из направлений будет подзастревать так скажем, в итоге вы устанете, можете потерять тэмп.
    Все зависит от лично ваших возможностей, если потянете, если будете успевать и там и там, то это в принципе не запрещается! ))

    PS: ну , пожалуй самые противники совмещения очной работы с ИП/фриланс и пр. вариантами это банки.

    PS: а в вузе я совмещал очное обучение с "очной" работой )
    но скажем так... ну писал уже выше - одно из направлений будет подзастревать и т.п. и т.д.

    НО, не попробуешь, не узнаешь, кто-то держит?
    Ответ написан
  • Скрипт обертывания элементов?

    erge
    @erge
    Примус починяю
    $(".string_block:not(.row):nth-child(2n)").wrapAll("<div class='row' />");


    думаю так тоже должно работать:
    $(".string_block:not(.row):nth-child(even)").wrapAll("<div class='row' />");


    см - Фильтр по месту среди соседей
    CSS :nth-child() Selector
    Ответ написан
    Комментировать
  • Как сформировать sql запрос для выборки из двух таблиц?

    erge
    @erge
    Примус починяю
    SELECT t1.*
      FROM t1
      JOIN t2 ON t2.id_iz_pervoi_tablici = t1.id
      WHERE t2.flag = 0
    Ответ написан
    Комментировать
  • Запрос по двум таблицам PostgresSQL?

    erge
    @erge
    Примус починяю
    SELECT id FROM (
      SELECT id FROM tbl1
      UNION
      SELECT id FROM tbl2 WHERE is_active = 1
    ) WHERE id = SOME_ID
    Ответ написан
    Комментировать
  • Как получить данные из 2 таблиц по разным условиям?

    erge
    @erge
    Примус починяю
    SELECT *
      FROM setting_salue sv
      JOIN setting s ON s.id = sv.setting_id
      WHERE (sv.domain_id = DOMAIN_ID OR sv.domain_id IS NULL)
        AND (sv.language_id = LANG_ID OR sv.language_id IS NULL)
    Ответ написан
    5 комментариев
  • Как вставить фоновую картинку в GRUB 2 ??

    erge
    @erge Автор вопроса
    Примус починяю
    фоновая картинка подключается так:
    insmod png
    background_image /grub/splash.png


    предварительно необходимо найти раздел с grub, указать его в root
    так же включить графический режим

    в итого получается так
    ### поиск раздела с grub
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  UUID=b5b64681-55f6-4345-8a96-c5704d4549fd
    else
      search --no-floppy --fs-uuid --set=root b5b64681-55f6-4345-8a96-c5704d4549fd
    fi
    
    ### включение графического режима и загрузка фоновой картинки
    if loadfont /grub/fonts/unicode.pf2 ; then
       set gfxmode="640x480"
       insmod gfxterm
       insmod vbe
       terminal_output gfxterm
       if terminal_output gfxterm; then true ; else
          terminal gfxterm
       fi
       # фоновая картинка
       insmod png
       background_image -m stretch /grub/splash.png
    fi
    ###


    ps: включение графического режима почему то делается через проверку загрузки шрифта

    в итого такой
    grub.cfg
    set default="0"
    set timeout=10
    set timeout_style=menu
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    
    ### поиск раздела с grub
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  UUID=b5b64681-55f6-4345-8a96-c5704d4549fd
    else
      search --no-floppy --fs-uuid --set=root b5b64681-55f6-4345-8a96-c5704d4549fd
    fi
    
    ### включение графического режима и загрузка фоновой картинки
    if loadfont /grub/fonts/unicode.pf2 ; then
       set gfxmode="640x480"
       insmod gfxterm
       insmod vbe
       terminal_output gfxterm
       if terminal_output gfxterm; then true ; else
          terminal gfxterm
       fi
       # фоновая картинка
       insmod png
       background_image -m stretch /grub/splash.png
    fi
    ###
    
    menuentry 'Red Hat Enterprise Linux ES (2.6.9-5.ELsmp)' --class gnu-linux --class gnu --class os {
        insmod ext2
        set root='hd0,msdos1'
        linux	/vmlinuz-2.6.9-5.ELsmp ro root=/dev/sda6 quiet
        initrd	/initrd-2.6.9-5.ELsmp.img
    }
    
    menuentry 'Red Hat Enterprise Linux ES-up (2.6.9-5.EL)' --class gnu-linux --class gnu --class os {
        insmod ext2
        set root='hd0,msdos1'
        linux	/vmlinuz-2.6.9-5.EL ro root=/dev/sda6 quiet
        initrd	/initrd-2.6.9-5.EL.img
    }
    Ответ написан
    Комментировать
  • Как менять значение сгенерированного объекта в HTML?

    erge
    @erge
    Примус починяю
    вставляйте в контейнер каждый раз заново сгенеренную таблицу не через .append() а через .html()
    либо заморачивайтесь с поиском таблицы, ячеек и их обновлением.
    Ответ написан
    Комментировать
  • Как перебрать неопределённое количество элементов через цикл?

    erge
    @erge
    Примус починяю
    Можно ли как-то это всё прогнать через цикл, чтобы избавиться от дублирования кода?


    от дублирования кода избавляют функции или методы в классах.
    Ответ написан
    Комментировать
  • Как сгрупировать данные из двух таблиц по одной колонке?

    erge
    @erge
    Примус починяю
    опоздал... ))

    м... вопрос - зачем лефт джойн? имхо не нужен.

    не знаю как это в ваших ларавелях, в SQL примерно так думаю:
    SELECT t.value, count(*) as users_count
      FROM users u
      JOIN (
        SELECT d1.text as value, d1.user_id FROM data1 d1
        UNION
        SELECT d2.name as value, d2.user_id FROM data2 d2
      ) t on t.user_id = u.id
      GROUP BY t.value
      ORDER BY users_count DESC


    PS: если нужно считать И совпадающие в data1 и data2 записи, то UNION заменить на UNION ALL

    UPD: просто выполните сырой select
    Ответ написан
    2 комментария
  • Необходимо скопировать фотки из src в dst, а копируется вся директория в папке есть папки в которых фотки и вот не выходит скопировать только фотки?

    erge
    @erge
    Примус починяю
    может перемещать все таки файл(ы) а не директорию?
    for root, dirs, files in os.walk(src):
        for file in files:
            if file.endswith(('png','jpg')):
                shutil.move(os.path.join(root, file), dst)
    Ответ написан
    2 комментария
  • Почему при умножении выводится NaN а не число?

    erge
    @erge
    Примус починяю
    не известно что и как вы вводите, какие исходные цифры??
    но режим Ванги подсказывает, каждое значение приводящееся к числу обработать строковыми функциями замены, заменить пробелы на пустую строку и , на .
    и цену приводить к нижнему регистру, вдруг там Руб или РУБ ??

    как-то так.
    quant: Number($(el).find('.cart-popup__calcdisp').find('span').text().replace(/[\s\n\t]/mg, "").replace(/,/mg, ".")),
    
                let priceOfOne = $(el).find('.cart-popup__nums_one').find('span').text().replace(/[\s\n\t]/mg, "").replace(/,/mg, "."),
                    num = priceOfOne.toLowerCase().indexOf('руб'),


    PS: у вас Number() не может переварить 12 100
    поэтому необходимо удалить все пробелы!
    см. https://www.w3schools.com/jsref/tryit.asp?filename...
    пример с Number(x5) = NaN

    PPS: используйте console.log() и поэтапно выводите значения переменных, так и увидите в каком месте затык происходит. потом просто везде удалите эти уже ненужные выводы в консоль.
    Ответ написан
    5 комментариев
  • Как сложить старое и новое значение в одном input?

    erge
    @erge
    Примус починяю
    <input type="text" id="number" value="100">
    document.getElementById("number").onblur = function(){
    	this.value = parseInt(this.defaultValue) + parseInt(this.value);
      this.defaultValue = this.value;
    }


    PS: при потере фокуса происходит перерасчет значения и запись обратно и в defaultValue

    Ответ написан
    1 комментарий
  • Как найти телефон в sql с помощью match against?

    erge
    @erge
    Примус починяю
    UPD:
    немного неверно написал ранее, т.к. это поиск по части номера, то естественно надо LIKE
    $sql = "SELECT * FROM tbl WHERE replace(replace(replace(replace(phone,'(',''),')',''),' ',''),'-','') LIKE concat(replace(replace(replace(replace('".$num."','(',''),')',''),' ',''),'-',''), '%')";


    UPD2:
    PS:
    Не совсем понимаю как это реализовать с помощь полнотекстового поиска.

    а зачем вообще реализовывать это с помощью полнотекстового поиска??
    если номер телефона хранится в отдельном поле, в определенном формате?
    1. либо приводите обе стороны "искомого" к одному формату (т.е. удаляете все лишнее) как например выше.
    2. либо, если номера в базе хранятся в одном формате приводите искомый (вводимый) номер к формату хранения в базе + знак % и поиск LIKE
    3. либо делаете поиск через REGEXP соответствующим образом формируя рег.выражение из PHP
      но это несколько сложнее, надо ее динамически формировать в зависимости от введенных цифр.
      вот регулярка для проверки телефона практически в любом варианте написания:
      ^\+?7[ -]?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{2}[ -]?\d{2}$

      под MySQL сами перепишите... см. ссылку выше, там другие классы символов.
    4. либо, если все же таки нужен полнотекстовый поиск, то искомое значение НЕОБХОДИМО приводить к формату в базе и искать отформатированное значение
    Ответ написан
    Комментировать
  • Как обработать массивы?

    erge
    @erge
    Примус починяю
    const al   = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЫЬЭЮЯ "; // Алфавит
    let key1 = "ПЕРВЫЙ"; // первый ключ
    let key2 = "БУКВА"; // второй ключ
    let open_str = "ЭТО СТРОКА ОТКРЫТОГО ИСХОДНОГО ТЕКСТА"; // кодируемый текст
    
    // т.к. в алфавите нет букв Й и Ъ, то производим соответствующую замену:
    key1 = key1.replace("Й","И").replace("Ъ","Ь");
    key2 = key2.replace("Й","И").replace("Ъ","Ь");
    open_str = open_str.replace("Й","И").replace("Ъ","Ь");
    
    // кодируем текст
    let encoded_str = ([...open_str]).map( (e,i) => al[(al.indexOf(e) + al.indexOf(key1[i%key1.length]) + al.indexOf(key2[i%key2.length])) % 32] ).join("");
    
    console.log(encoded_str);


    PS:
    к строке по сути можно обращаться как к массиву - str[index]
    про .map смотрим здесь - https://developer.mozilla.org/en-US/docs/Web/JavaS...
    если вам надо прям вот на МАССИВАХ, то просто сделайте соответствующие переменные "массивами"
    строку в массив можно разбить так str.split("") или [...str]

    по скрипту
    al - строка / массив букв алфавита
    al.indexOf(char) - получаем индекс буквы в алфавите
    по выбору символа из ключа - т.к. ключ у нас заитерирован, то берем остаток от деления индекса кодируемого символа на длину ключа , это и будет символ из ключа - key1[i%key1.length], далее получаем его код по алфавиту - al.indexOf(key1[i%key1.length])

    и у вас много ошибок в таблице, например в третьей строке - конечный символ не И, а З
    и т.д.

    Ответ написан
    Комментировать