Задать вопрос
  • Как изменить запрос для того, чтобы поля (столбцы) создавались динамически?

    @alexalexes
    1;"Электрики";"Начальник объекта";"4 группа";"Иваныч";"АА1";1;"Дата рождения";1;"13.09.1986"
    1;"Электрики";"Начальник объекта";"4 группа";"Иваныч";"АА1";2;"Пропуск";2;"123-456789"

    Вот это перерабатывайте в подходящее представление в том процедурном языке, откуда выполняли запрос.
    То, что вы пытаетесь сделать - это не задача для SQL.
    Ответ написан
    2 комментария
  • Можно ли составить mysql запрос с выборкой не определенного множества полей?

    @alexalexes
    Можете, но свойства будут не в пределах строки (горизонтально), а в пределах колонки (вертикально).
    С помощью SQL вы можете, не забивая микроскопом гвозди, извлечь вот такой результат:
    Ручка; Цвет; Синий;
    Ручка; Цена; 10
    Нож; Материал; Дерево;
    Нож; Цена; 200;
    Нож; Рукоятка; Дерево; 
    Нож; Фото; Есть;

    А дальше скриптом, который отвечает за вывод итогового формата документа, делаете необходимые группировки и форматирование.
    Ответ написан
  • Как защитить данные от повреждения при INSERT?

    @alexalexes
    если в Mysql какие-то строки смогут загрузиться, а какие-то - нет,

    Не бывает тут вариативности, даже случайной.
    Можете внести одну или несколько строк запросом insert (или несколькими insert-ами по одной строке, а может еще где-то update-ом или delete-ом пробежитесь). Но фиксация этих действий будет происходить, если после запросов на вставку/изменение/удаление явно будет отправлена команда commit или rollback (а может и не явно, см. что такое autocommit).
    До поступления этих транзакционных команд ваши изменения будут копиться во временном буфере СУБД и будет блокировать объекты СУБД до того момента, пока не поступит транзакционная команда (или не наступит ситуация для autocommit). Для других пользователей СУБД изменения заблокированных объектов будет недоступно, только чтение той версии объекта, которая была до наложения блокировки (не всегда таков принцип, см. что такое уровни изоляции транзакций).
    Ответ написан
    Комментировать
  • Как упростить код суммы строк?

    @alexalexes
    4*1-2
    Точно 1 а не i ?
    Имейте привычку трассировать тело цикла, раскладывая непонятное выражение на составные части (а лучше сразу писать так, чтобы анализировать проще было человекам) и писать эти части куда-нибудь в консоль/лог-файл и т.д. (не знаю, чем пользуются в VB для "быстро выгрузить что-то и посмотреть отладочные данные").
    _A = WorksheetFunction.sum(range(Cells((4*1-2),3), Cells((4*i+1),3)))
    _B = Cells((4*1-2),3)
    _C = Cells((4*i+1),3)
    _D = 4*1-2
    _E = 4*i+1
    Ответ написан
  • Как получить более глубокие знания?

    @alexalexes
    "Найди компанию с крутой командой"

    Именно так. Ищите вакансию с требованиями по навыкам, классом чуть выше, чем вы предполагаете у себя. Готовитесь к собеседованию - подтягиваете знания по булитам в списке требований, где конь не валялся (как там с английским языком? а что там используется на стыке технологий в этом участке стека сейчас? какими средствами версируется проект? как распределяются зоны ответственности разработчиков и какие роли существуют?). Проваливаете 5-10 собеседований, наконец, худо-бедно устаиваетесь на желаемую позицию.
    На этой позиции уже изучаете кухню подробнее, естественно, в свободное от работы время тоже.
    Ответ написан
    1 комментарий
  • Как парсить большое количество сайтов?

    @alexalexes
    Помещаете свой массив с 4000 элементами в таблицу базы данных.
    Добавляете еще несколько атрибутов для записи таблицы:
    1. статус обработки парсинга, значения: 1 - добавлен в очередь на обработку, 2 - в обработке, 3 - обработка завершена.
    2. Дата и время изменения статуса обработки.
    Теперь ваш скрипт должен взять запросом из таблицы базы одну запись (один сайт) со статусом 1 (или со статусами 2 или 3, с разницей времени больше периода повторной обработки парсинга) и перевести в статус 2 и начать обработку. По окончании обработки выставить статус 3. При смене статуса обновлять его время изменения.
    Анализировать статус и переводить его в статус 2 нужно одной транзакцией, а в статус 3 - другой транзакцией.
    Если время выполнения персинга с момента старта скрипта небольшое (определяете предельное время работы одного потока и с ним сравниваете), то можно взять следующую запись в работу.

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

    @alexalexes
    var currentExtraStackFrame = null; // это нужно, чтобы не словить предупреждение в консоль undefined variable/property при обращении к свойству currentExtraStackFrame
    // этим методом вы задаете какое-то значение для свойства currentExtraStackFrame, если его нужно привести в какое-то не null значение (или вернуть в null - значение по умолчанию).
    function setExtraStackFrame(stack)
    {
      // if() тут может была лексема if, можно просто ее закомментить и не убирать скобки, чтобы git не анализировать их исправление, и так будет работать
      {
        currentExtraStackFrame = stack;
      }
    }
    Ответ написан
    2 комментария
  • Можно ли протирать монитор средством для чистки оптических поверхностей, если при этом нельзя использовать органические растворители?

    @alexalexes
    В протирке любой поверхности без разводов главной хитростью является то, что у вас должно быть две тряпочки: одна для нанесения жидкости (влажная тряпочка), другая - для удаления жидкости с поверхности (сухая тряпочка).
    При этом, не обязательно использовать состав с очищающими свойствами. Подойдет обычная вода (но для надежности можно взять фильтрованную).
    Ответ написан
    Комментировать
  • Какую установить память на ASRock D1800m?

    @alexalexes
    Посмотрите, какая у вас стоит планка памяти. Если 8Gb / 1333, то купите с таким же объемом и такой же пропускной способности. И это будет предел. Улучшать на вашей материнке больше ничего нецелесообразно, только менять ее вместе со всеми комплектующими.
    PS: Если у вас потребление памяти не упиралось в 100%, то покупка доп. планки не решит проблему. Скорее всего у вас проц. нагружается под 100% при любом вздохе.
    Ответ написан
  • Почему ноутбук виснет на определении ide устройств?

    @alexalexes
    Если ноутбук поддерживает загрузку с USB, то можете попробовать записать на флешку Alkid live CD (присутствует в комплекте к ZverCD / ZverDVD) и загрузить на ноутбуке эту ОС. Далее, зайти в "Диспетчер устройств" и посмотреть, какие есть устройства "Контроллеры IDE ATA". Eсли не очевидно их присутствие, то можно воспользоваться программой AIDA64 (в старой версии она называется Everest, присутствовала в комплекте утилит live CD) - там просмотреть наличие дисковых контроллеров.
    Если они ни в каком виде не обнаруживаются в системе, то скорее всего проблема в чипсете ноута.
    Ответ написан
    2 комментария
  • Как использовать часть URL как переменную?

    @alexalexes
    Типичный кейс, как использовать GET-параметры, если известен их список допустимых значений.
    <?php
    // список допустимых значений переменной $channel
    $allow_channel_list =  ["svm.sport" , "svm.music" ,  "svm.loop"];
    // значение по умолчанию
    $default_channel = "svm.best";
    // если в GET-параметрах присутствует ключ channel и значение по ключу входит в список допустимых значений...
    if(isset($_GET['channel']) && in_array($_GET['channel'], $allow_channel_list))
    {
    // ..., то переменная равняется этому значению  
      $channel = $_GET['channel'];
    }
    else // иначе, берем значение по умолчанию
      $channel = $default_channel;
    ?>
    
    <!DOCTYPE html>
    <html>
       <head>
          <title><?php echo $channel; ?></title>
    <!-- ... БЛА-БЛА-БЛА -->
    
    <?php
    // <!-- ... БЛА-БЛА-БЛА -->
    
    ?>

    Использовать так:
    test.php?channel=svm.best
    Ответ написан
    2 комментария
  • Как сделать DISTINCT для двух полей?

    @alexalexes
    Нужно воспользоваться какой-нибудь агрегирующей функцией (min, max, avg, sum, count и т.д.) и по ней группировать.
    Зависит от того, какой результат хотите получить.
    SELECT brand_name, any_function(indeks_shvidkosti) as func_indeks_shvidkosti
      FROM tires
    group by brand_name
    ORDER BY brand_name ASC

    ПС: Если вы используете Distinct, значит где-то что-то не учли в требованиях к структуре данных, что вам приходится избавляться от дублей.
    Ответ написан
  • Насколько опасно использование конструктора Function?

    @alexalexes
    такой способ представляет угрозу для безопасности

    Потому, что если злоумышленник будет иметь возможность статично внедрять HTML-фрагменты в тело документа, не имея доступа к интерпретатору JS пользователя, то с помощью атрибута data-format-value он эту возможность получит напрямую, так как может вставлять любой код JS в этот атрибут, получая доступ к локальному хранилищу, кукам. Если по кукам он не угонит сессию пользователя, то хотя бы сможет составить его фингерпринт.
    Ответ написан
    7 комментариев
  • Насколько рискованная операция - перепайка сокета в мат. плате? Какова вероятность, что плата будет работать плохо?

    @alexalexes
    Если производитель мат. платы не постарался усложнить ремонтопригодность - не залил соккет и основные чипы компаундом, не использовал низкотемпературный припой, а у мастера есть необходимое оборудование (паяльная станция, микроскоп, проф. паяльник со сменным жалом), мастер применяет флюсы по назначению, то от него не требуется повышенного скилла, чтобы сделать данную операцию. Но это не отменит того факта, что денежку за работу он потребует в размере стоимости самой бюджетной мат. платы и выше, если изделие из топ сегмента.
    Ответ написан
    Комментировать
  • Как импортировать данные из .docx файла в JavaScript логику?

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

    @alexalexes
    Нужно. Хотя бы вставить решение простой капчи вида:
    2 + 8 = ?

    Если боты позарятся на ваше творение, и будут обходить решалку, то поставить уже капчу с изображением на своем модуле. Если и ее будут ломать, то воспользоваться сторонними капча API.
    Ответ написан
    1 комментарий
  • Как обойти ограничение/шейпинг скорости до 1 Мб/с МТС?

    @alexalexes
    Без модификации прошивки модема ZTE mf79u не обойтись, чтобы зафиксировать TTL, выставить нужный IMEI, чтобы можно было пользоваться бюджетными тарифами. Но такие манипуляции могут вывести из строя модем.
    Скорость может меняться не только от прихоти оператора, но от состояния эфира. Модем может выбирать не самую быструю частоту.
    https://4pda.to/forum/index.php?showtopic=998634&v...
    Ответ написан
    Комментировать
  • Как в modx очистить кеш?

    @alexalexes
    Действие "Очистить кэш" влияет только на поведение чанков и сниппетов, которые генерируют контент в секции "Содержание" каждого ресурса (контент чанков и сниппетов, которые подключены без восклицательного знака, будет обновлен, также будет обновлено содержимое самого ресурса, если у него проставлена галочка "кэшируемый"). Действие "обновить URI-ссылки" влияет на кэш роутера дерева ресурсов, если вы создавали новые страницы, и по какой-то причине не можете выйти на их содержимое по ссылкам.
    Стили у вас скорее всего подключены на статичные файлы css - Modx на них не влияет этими действиями, если css ссылки ведут на статику - то там нужно править http-заголовки для браузерного кэша в файлах htaccess или в конфиге nginx.
    PS: В качестве оперативного решения на сброс кэша может повлиять введение дополнительного параметра в url стиля:
    style.css?timestamp=202401091501
    Это почти всегда выручит в ручном режиме, но для правильности лучше так не делать, а настроить правильно http-заголовки.
    Ответ написан
    Комментировать
  • Paз в 5 минyт пpoиcxoдит мopгaниe мoнитopa?

    @alexalexes
    Посмотрите режим питания в панели управления, возможно, это как раз тот интервал, когда комп пытается перейти в энергосберегающий режим, но ничего не получается из-за недоустановленных или кривоустановленных драйверов управления питания (acpi)/видео/и прочих.
    PS: Еще монитор может тухнуть, если на одной линии 220В подключен холодильник, бойлер или насос, который периодически включается. Но в этом случае сбои будут происходить в независимости, пользуетесь компом или нет.
    Ответ написан
    1 комментарий