• Есть ли программа, сервис, модуль для Excel, Calc для копирования из электронной таблицы в SQL?

    @alexalexes
    У вас очень специфичные требования к функционалу Excel. Все таки excel-файлы - это просто еще один вид получения отчета от информационной системы (в ИС входит как специализированный софт, так и СУБД - где структура базы спроектирована не просто набором таблиц, а именно по функциональным особенностям предметной области). Такие файлы не обязаны обладать внутренним функционалом импорта и экспорта данных, это просто выгрузка данных по какому-то информационному срезу. Excel хоть и имеет возможность выполнять вычисления по полям, но не надо возлагать на него то, что должен делать тот самый софт, которого у вас нет.
    Однако, MS Office имеет возможность добавлять в свои документы макросы. На макросах можно сделать то, что вы хотите. Но при каждом изменении вида экспорта и импорта вам придется привлекать программиста, чтобы поправил код макроса.
    Ответ написан
  • Как экспортировать диалог с собой в PDF?

    @alexalexes
    Подключиться через любую среду разработки (python, php и др.) к VK API и вычитать содержимое беседы.
    Легче всего будет сохранить результат вычитывания в html формате.
    Ответ написан
    Комментировать
  • Как отсортировать товары по числу, если тип опций текстовое и с плавающей запятой?

    @alexalexes
    Попробуйте обойти экранирование перекодированием числа в нужный символ.
    &sortby = `{"CAST(replace(option_01,',',char(46)) AS DECIMAL(13,3))": "ASC"}`
    Ответ написан
    1 комментарий
  • Идти ли в ВУЗ на электронщика?

    @alexalexes
    Идите сразу в вуз.
    В выбираемом вами направлении подготовки не обязательно будет тройка предметов вступительный испытаний: математика, физика, русс. яз. В этом году правила приема изменились, и теперь вступительные испытания представляют из себя группу предметов.
    Вполне возможно, у вас будет такая тройка групп предметов:
    1. матем. / электрика
    2. физика / инф. и ИКТ / прикл. мат.
    3. рус. яз.
    Предоставлять результаты ЕГЭ / отдельного испытания можно по любому предмету из альтернативных в каждом номере группы. Например, можно вместо математики сдать профильный предмет - электрику.
    Кроме того, если у вас на руках имеется сертификат ЕГЭ с не очень высоким баллом, то можно попытаться улучшить его, сдав вступительное испытание в вузе.
    Кроме того, в следующем году будут действовать сертификаты ЕГЭ за 2019-2023.
    PS: В любом случае, изучайте правила приема в том вузе, куда собираетесь поступить.
    Найдите нужный профиль направления подготовки в интересуемом вузе и мониторьте критерии приема во время старта приемной кампании 2023.
    PPS: вуз всегда пишется маленькими буквами.
    Ответ написан
    Комментировать
  • Нужно ли в таких случаях делать защиту от инъекций?

    @alexalexes
    Помимо наличия возможности использовать инъекции есть еще один момент.
    Если у вас форма на редактирование, то хорошо бы, чтобы она имела скрытое поле id той записи, которую редактируете, в данном случае нужно принять user_id через POST и уже сразу делать обновление по известному телефону и user_id:
    $user_id = $_POST['user_id'];
    $tel = $_POST['tel'];
    $user = mysqli_query($connect, "UPDATE `bd` SET `tel` = '$tel'  WHERE `bd`.`id` = $user_id");

    Но есть еще одни нюанс. Если такую запись редактирует администратор (пользователь с самыми широкими правами), то доверять передачи $user_id через форму можно.
    Если такую запись редактирует тот же самый пользователь, который авторизован в системе, то доверять $user_id параметру из формы опасно, user_id нужно брать из сессии авторизации.
    $user_id = /* Нужно какой-то функцией забрать идентификатор пользователя из сессии авторизации */;
    $tel = $_POST['tel'];
    $user = mysqli_query($connect, "UPDATE `bd` SET `tel` = '$tel'  WHERE `bd`.`id` = $user_id");
    Ответ написан
    Комментировать
  • Почему привод ZenDrive не видит BD-R диски?

    @alexalexes
    В спецификации ZenDrive SDRW-08U9M-U нет поддержки blu-ray дисков.
    https://www.asus.com/ru/Motherboards-Components/Op...
    PS: M-DISC маркировка говорит лишь о технологии материала диска, а не о его формате записи. Он может быть как DVD, так и blu-ray (они же BD). Вы пытаетесь использовать формат диска в приводе, который его не поддерживает.
    Ответ написан
    Комментировать
  • Можно ли удалить последний параграф из строки mysql?

    @alexalexes
    Лучше для такой операции написать отдельный скрипт на php или python. В СУБД очень бедный функционал на функциях регулярных выражений. А в скрипте вы сможете как извлечь данные, так обрезать все лишнее, а потом обновить данные в базе. Если данные записаны в виде HTML или JSON, то удобнее их декодить или строить DOM дерево и обрезать лишнее в преобразованной структуре с последующим преобразованием в вид для сохранения в базе.
    Ответ написан
    Комментировать
  • База данных на 32 гигабайта, как сделать?

    @alexalexes
    Если цель хранения данных - логирование состояния приложения, и это нужно делать только локально, то подойдет SQLite. Если нужно общее хранилище данных для нескольких экземпляров приложения, или нужно иметь общий доступ к данным по сети, то нужно брать СУБД по-функциональнее, например, PostgreSQL или MySQL (желательно 8 версии).
    Для решения данной задачи нужно изучить следующие моменты:
    1. Какими средствами администрировать СУБД: чтобы создать пользователя, создать базу данных, создать необходимые таблицы, просматривать данные.
    2. Как подключиться к СУБД из программной среды.
    3. Как выполнять запросы вставки, выборки по условию, с параметрами запроса средствами SQL с использованием библиотеки работы с СУБД из программной среды.
    Ответ написан
    2 комментария
  • Как проверить на совпадение в бд?

    @alexalexes
    Динамически сформировать текст и список параметров запроса, в зависимости от критериев:
    $sql = "SELECT * FROM `shop` WHERE 1=1 "; // 1=1 - классическая заглушка, чтобы можно было удобно добавлять and.
    $params = []; // заготовка под входные параметры запроса.
    if(isset($_POST['criteria_1']) && $_POST['criteria_1'] == 'on') // выбрали нечто по первому критерию
    {
    // он проверяет только имя чего-то
    $sql .= 'and `name` = :name ' // добавляем условие в текст запроса
    $params['name'] = $_POST['name']; // добавляем параметры
    }
    if(isset($_POST['criteria_2']) && $_POST['criteria_2'] == 'on') // выбрали нечто по второму критерию
    {
    // он проверяет  например, страну и город
    $sql  .= ' and `country` = :country
                 and `city` = :city ' // добавляем условие в текст запроса
    $params['country'] = $_POST['country']; // добавляем параметры
    $params['city'] = $_POST['city']; // добавляем параметры
    }
    $stmt = pdo()->prepare($sql);
    $stmt->execute($params);
    if ($stmt->rowCount() > 0) {
        flash('Этот магазин уже существует.');
        header('Location: addshop.php'); // Возврат на форму регистрации
        die; // Остановка выполнения скрипта
    }
    Ответ написан
    Комментировать
  • Как отправить несколько записей?

    @alexalexes
    В самом примитивном варианте реализации.
    Даете тегу select атрибут multiple и name задаете как ключ-массив, чтобы отправляемая форма могла по данному name нести на сервер массив значений:
    <select name="category_id[]" form="data" multiple>
    ...
    </select>

    На стороне сервера на пост-параметре category_id вы увидите массив выделенных элементов:
    var_dump($_POST['category_id']);
    Ну, и остается перебрать этот массив, чтобы последовательно выполнить insert.
    PS: Однако, структуру базы вам придется изменить, добавив еще одну таблицу для хранения множественного выбора категорий, чтобы выполнить требования 3-ей нормальной формы нормализации данных.
    Ответ написан
  • У меня подгорела вилка на блоке питания для ноутбука, что делать?

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

    @alexalexes
    Как вариант, ajax-ом авторизоваться и вызвать обновление страницы.
    var request = new XMLHttpRequest();
        request.open("POST", "test.ru", false);
        request.setRequestHeader("Authorization", "Basic " + btoa(user + ":" + password));  
        request.loaded = function()
        {
          window.location.reload();  // обновление страницы
        };
        request.send();
    Ответ написан
    Комментировать
  • Как приветси GET-ответ в удобочитаемый вид?

    @alexalexes
    Можно хоть с браузера изучать содержимое JSON:
    1. Открываете средство разработчика в браузере F12.
    2. Открываете консоль.
    3. Пишите:
    Текст вашего JSON;
    4. После нажатия Enter появится строчка со скомпилированным результатом. Теперь можете бродить по внутренностям этого объекта как по дереву каталогов.
    Ответ написан
    Комментировать
  • Погнулась вилка на зарядке, можно ли пользоваться дальше?

    @alexalexes
    Небезопасно использовать без присмотра.
    Ответ написан
    Комментировать
  • Как правильно переопределить данную функцию в postgresql?

    @alexalexes
    1. Открываете функцию замены текста в тестовом редакторе.
    2. Включаете режим использования регулярных выражений.
    3. Используете регулярки:
    - для поиска:
    '([\-]*[\d]+)'
    - для замены:
    '$1'::character varying
    4. Если текстовый редактор подсвечивает результат поиска в тексте, то убедиться, что захватывается именно то, что нужно.
    5. Провести пошаговую замену текста (если не уверены в результате) или запустить полную замену.
    Ответ написан
    Комментировать
  • Как объединить строки в SQL?

    @alexalexes
    Лучше, конечно, вертикальную выборку перерабатывать в горизонтальную не в SQL, а в той процедурной прослойке, которая вызывает запрос.
    На SQL можно такое провернуть, но будет не универсально (фиксированное число столбцов в итоговой выборке).
    with main_tb (id, detal, mono, row_num) as (select id,
              detal,
              mono
             row_number() over (partition by detal order by id) as row_num
    from tb) 
    
    select t.id,
              t.detal, 
              t.name,
              (select t1.mono from main_tb as t1 where t1.detal = t.detal and t1.row_num = 1) mono,
              (select t1.mono from main_tb as t1 where t1.detal = t.detal and t1.row_num = 2) mono2,
              (select t1.mono from main_tb as t1 where t1.detal = t.detal and t1.row_num = 3) mono3
    from tb as t
    Ответ написан
    Комментировать
  • Есть ли аналог tinyint в PostgresSQL?

    @alexalexes
    Если экономить на спичках, то можно конвертировать число в символ, и вписаться в тип varchar(1), но мы же не будем делать из буханки хлеба троллейбус?
    Ответ написан
  • Как исправить ошибку Outlook 0x80004005?

    @alexalexes
    Попробуйте создать заново почтовые профили в Outlook, но предварительно сделайте резервные копии файлов *.pst, которые находятся по умолчанию в каталоге документов профиля Windows, чтобы сохранить архив писем (при создании профиля нужно будет указать местонахождение этих файлов).
    PS: Если файлы *.pst находятся не в этом каталоге, то проверьте права доступа к каталогу, могут ли сторонние программы сохранять в него файлы.
    Ответ написан
    Комментировать
  • Какой язык программирования учить системному администратору?

    @alexalexes
    Учите использование консоли linux/windows и все, что может автоматизировать выполнение сценария консольных команд по расписанию или в виде пакета.
    Ответ написан
    Комментировать
  • Как сформировать запрос?

    @alexalexes
    select u.*
      from users u
    where not exists(
                select 999
                  from user_statuses us
                where us.user_id = u.id 
                    and us.status_id = 1
                 )
    Ответ написан
    2 комментария