Задать вопрос
  • Как расположить точки на окружности?

    @alexalexes
    В вашем примере используется карусель, у которой прописаны стартовое положение:
    state = {
        carouselDeg: 17,
        itemDeg: -17,

    carouselDeg - поворот элементов основной окружности в градусах. Опытным путем можно понять, что оно задается как:
    (360 / кол-во элементов) / 2
    Элементов у вас 10, значит, должно быть 18 градусов, а не 17 (можно заметить, что с 17 неровное начальное смещение).
    itemDeg - вращение контента внутри одного элемента. Если хотите, чтобы контент всегда был обращен горизонтально, то берете ту же формулу со знаком минус.
    Далее, есть такие методы:
    next = () => {
        this.getIdItems(true);
        this.setState(state => ({
          carouselDeg: state.carouselDeg - 36,
          itemDeg: state.itemDeg + 36
        }));
      };
    
      prev = () => {
        this.getIdItems(false);
        this.setState(state => ({
          carouselDeg: state.carouselDeg + 36,
          itemDeg: state.itemDeg - 36
        }));
      };

    Число 36 - это шаг вращения, он вычисляется как:
    360 / кол-во элементов
    В принципе все, что нужно знать для правильной ориентации карусели.
    Прорисовкой элементов карусели занимается сама библиотека, позиции элементов на плоскости вам вычислять не нужно.
    Ответ написан
    Комментировать
  • Как лучше хранить мелкие данные в базе?

    @alexalexes
    В самом кратком варианте у вас будет одна таблица, которая будет отвечать за дерево страниц.
    Таблица pages:
    id - идентификатор страницы;
    parent_id - идентификатор родителя страницы;
    title - Название страницы
    short_name - Краткое наименование (обычно используются для пунктов меню)
    alias - имя алиаса для построения url страницы (то что вы указали как type: about, advantages, etc...)
    create_date - дата-время создания страницы
    update_date - дата-время изменения страницы
    content - тело страницы
    is_hidden - флаг скрытости страницы (удобно использовать для устаревания страниц)
    PS: Посмотрите как это реализовано в любой популярной CMS, похожая таблица и свойства таблиц есть в любой из реализаций.
    Ответ написан
    Комментировать
  • Как сделать отправку формы в телеграмм бота но и чтобы форма делала запрос?

    @alexalexes
    document.getElementById('tg').addEventListener('submit',function(e){

    Вместо события submit подпишитесь на событие click не на тег формы, а на кнопку.
    На эту кнопку.
    <button type="submit">Отправить</button>
    У кнопки уберите тип submit - вы же не хотите дергать классическую отправку формы через submit.
    Все отправки делайте через axios (внутри этой библиотеки используется ajax - что вам и требуется, что и так используется).
    Ответ написан
  • Подзапросы. Сколько разных товаров заказывал каждый покупатель (по ФИО) в 1995 году?

    @alexalexes
    Вы просто не освоили group by. Те поля (или хитровычисляемые значения), которые не получены при помощи агрегированных функций, используемые в select и требуют группировки, нужно прописать в group by.
    Чтобы count считал уникальные значения по конечной выборке, не по числу строк, в него прописывают поле или выражение, которое будет определять, как идентифицировать уникальную часть выборки.
    SELECT O.CustomerID, C.ContactName, Count(distinct Od.ProductID) as Product_Unique_Count
                FROM Orders as O
                join Custimers as C on O.CustomerID = C.CustomerID
                join [Order Details] as Od on Od.OrderID = O.OrderID
                WHERE YEAR(O.OrderDate) = 1995
    group by O.CustomerID, C.ContactName
    Ответ написан
    1 комментарий
  • Где на практике применяются комплексные числа? В каких сферах IT они нужны?

    @alexalexes
    Если в IT вы не будете заниматься моделированием физических процессов, создавать новый графический движок, создавать новый кодек для обработки аудио и видео - то в принципе, никогда не столкнетесь с комплексными числами.
    С полями и кольцами вы никогда не столкнетесь, если вас черт не дернет узнавать как работает метод шифрования RSA и более навороченные методы на гладких кривых, и, бог упаси, разрабатывать что-то свое помимо использования стандартных библиотек.
    Ответ написан
    Комментировать
  • Есть ли хорошие конверторы из jquery в js?

    @alexalexes
    В вашем случае лучший конвертер - компетентный программист.
    Ответ написан
    Комментировать
  • Есть ли программа, сервис, модуль для 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
    Небезопасно использовать без присмотра.
    Ответ написан
    Комментировать