• Решил задачу, но вопрос насколько верное решение выбрал?

    @alexalexes
    Если придраться, то после последнего числа пробел лишний.
    Можно своим велосипедом через i это отслеживать:
    let i = 0;
    for (let key in a14) {
            arr = a14[key];
            out += (i > 0 ? ' ' : '') + arr[0];
        };

    А можно изменить роль массива arr и воспользоваться join-ом:
    let arr = [];
    for (let key in a14) {
            arr.push(a14[key][0]);
        };
    document.querySelector('.out-14').innerHTML = arr.join(' ');
  • Предобработка текста в дату?

    @alexalexes
    Если элемент данных, по которому приходит текст в формате

    Можно по подробнее про этот элемент. Вполне вероятно, что вывод его настраиваемый и можно поставить нормальный формат отметки времени.
  • Почему в url меняется формат даты?

    @alexalexes
    А вы так и не сказали, пробовали ли c экранированным пробелом (см. в формате, где стоит %20):
    date("Y-m-d%20H:i:s", strtotime('2023-01-16 00:00:01'))

    Современные браузеры сильно умные, они в адресной строке стараются get параметры заменять экранированные символы обратно в реальные символы, но когда отравляют, то делают экранирование, если не встречают "процентовки".
    Когда пытаетесь что-то в url написать, то имейте ввиду, что часть url, которая отвечает за запрос, должна кодироваться должным образом, если туда передается текст с пробелами, знаками препинаниями, кириллицей и т.д.
  • Как перевести дату в секунды если доступен только год?

    @alexalexes
    Я поправил ответ. Вам придется хранить состояние "была полная дата", "был только год" в отдельном поле, чтобы не игнорить 1 января как точную дату.
  • Как сделать такую анимацию?

    @alexalexes
    Создайте два метода (они же функции, если не умеете писать прототип или класс).
    1. Инициализирующий метод.
    В этом методе из исходного массива текста создаете текстовые блоки как ноды DOM. Накидываете эти ноды в правый или левый красные контейнеры.
    2. Анимирующий метод.
    В этом методе через setInteval (по длительности, равный периоду повторения анимации) изменяете свойство текущего текстового блока в left или right в 0 или в значение ширины блока контейнера, чтобы заставить свойство transition отыгрывать анимацию.
    PS: Первый метод нужно запускать после того, как весь контент страницы загрузится.
    Во втором методе у setInteval время повторения будет зависеть от порядка текстового блока, чтобы получить фазу задержки анимации (если она требуется). Значение ширины блока лучше пересчитывать каждый раз, когда запускается setInterval, так как пользователь может изменять размер видимой области браузера.
  • Как сделать такую анимацию?

    @alexalexes
    Вы не предложили свой вариант решения. В таких случаях, я предлагаю только концепт решения.
  • Дублирование в LEFT JOIN, как исправить?

    @alexalexes
    Viachaslau85, любопытно, однако.
    Сколько лет использую sql, ни разу не видел такое использование.
  • Какая функция возвращает ответ sql?

    @alexalexes
    То, что вы используете функцию mysqli_real_escape_string, говорит о том, что вы подготавливаете текст запроса склейкой значений параметров. Этого надо избегать так:
    https://www.php.net/manual/ru/mysqli.quickstart.pr...
    но еще же куча разных ошибок может быть

    Оборачиваете фрагмент кода, где идет работа с базой в try catch, а в catch ловите вид ошибок по дескриптору mysqli_sql_exception $e, тогда $e всегда будет содержать сведения по любой операции работы с базой, когда что-то пойдет не так. Но ошибка будет выводится, если действительно есть аварийная ситуация. Если update выполнился корректно, и он затронул 0 строк - это не ошибка взаимодействия с базой. Если это ошибка по бизнес-логике, то вы должны ее сами отловить с помощью mysqli_affected_rows.
  • Какая функция возвращает ответ sql?

    @alexalexes
    А ошибка же еще другая может быть, например, не проэкранированые

    Тогда другой вопрос. Как вы подготавливаете запрос, чтобы подставить в него параметры?
  • Какая функция возвращает ответ sql?

    @alexalexes
    RimmaKur вы в курсе, что каждая mysqli функция в отличие от mysql без i предполагает наличие параметра дескриптора коннекта или дескриптора подготовленного запроса? (если это процедурный стиль, а не объектный)
  • Какая функция возвращает ответ sql?

    @alexalexes
    mysqli_errno(<дескриптор коннекта>)
    mysqli_error(<дескриптор коннекта>)
    Анализируйте код ошибки. Если не успех, то выводите что-то.
  • Где скачать драйвер тачпада для ноутбука toshiba L650?

    @alexalexes
    Действительно, кейс не из легких.
    Тогда открываете:
    https://www.notebook-center.ru/driver_toshiba_6811.html
    Далее, например, берете конечную ссылку от ссылки "Скачать"
    support1.toshiba-tro.de/tedd-files2/0/carc-2010070...
    Идете в веб-архив.
    https://web.archive.org/
    Заколачиваете туда эту ссылку, получаете такой результат:
    https://web.archive.org/web/20160101000000*/http:/...
    Идете в 2016 год.
    В календаре выбираете живой снапшот за 16 октября 2016 года. Оттуда можно скачать живой файл драйвера от картридера.
    И так повторяете с веб-архивом по всем недостающим драйверам.
    Если что-то не получается скачать, то копируете deviceID из неизвестного устройства в диспетчере устройств и пытаетесь найти аналог драйвера, хотя бы на driver.ru.
  • Как обработать ввод ссылки в поисковой строке в SPA приложении на чистом js?

    @alexalexes
    На стороне сервера нужно обеспечить передачу любых запросов к shop.com в точку входа по умолчанию.
    На стороне клиента после загрузки страницы анализировать, что находится в url после доменного имени.
  • Если в корпусе уже стоит материнка с micro-ATX, то в него 100% влезет другая материнка micro-ATX?

    @alexalexes
    Можете еще мерить размер материнской платы по кол-ву pci слотов напротив текстолита материнки.
    Типичный размер - 4 pci слота.
    Корпуса, обычно, имеют высоту 4 или 7 слотов pci (это единственный промежуток, который определяет высоту корпуса).
  • Как реализовать премодерацию запросов добавления/изменения в БД?

    @alexalexes
    Только при создании истории не забыть добавить внешний ключ на собственную таблицу - next_id - следующая запись истории в пределах id той таблицы, по которой ведется история. И добавить триггер, который будет при добавлении новой записи заполнять у предыдущей next_id.
    Если повесить индекс на это поле, то это позволит в любом запросе очень легко определять последнюю запись истории (next_id is null).
  • Что значит выучить язык программирования?

    @alexalexes
    Учить язык программирования - это значит, уметь находить оптимальное решение задачи по поставленным требованиям, используя принятые патерны проектирования, не зависящие от среды программирования, применяя эти патерны на структуры данных и интерфейсы взаимодействия объектов, типичные для данной среды программирования, используя синтаксис данной среды (то есть язык).
    Когда у вас выстроится стек от формулировки задачи или проблемы к синтаксису языка - то тогда значит, что вы владеете им.
  • В чем суть отличия двух SQL запросов?

    @alexalexes
    Автору лень один из запросов привести в один стиль написания псевдонимов. IDE не поможет.
  • Как сделать упрощение ссылок?

    @alexalexes
    Первоначально, у вас текущий номер активной страницы равен 1.
    Заведите параметр "размер области видимости страниц" и не давайте работать циклу for, когда i больше этого параметра. В обработчике клика вычисляйте индекс кликнутого элемента и от него шагайте for-ом влево и вправо - отображайте все элементы, индекс которых меньше по модулю, чем "размер области видимости страниц", а если индекс больше этого параметра - то погасить. В обработчике можно не ходить влево и вправо дальше 2 * "размер области видимости страниц" - там элементы будут скрыты при любом раскладе.
    Добавляйте "..." если первый номер страницы отстает от края "размер области видимости страниц" больше чем на 2, также "..." будет справа, если на 2 будет отличаться "размер области видимости страниц" к последней странице. "..." Нужно убирать, если эти условия нарушаются.
  • Как сделать упрощение ссылок?

    @alexalexes
    var rowsTotal = $('#myTable tbody tr').length;
    У вас уже отрисовывется миллион строк и по этому кол-ву вы пытаетесь посчитать число страниц.
    В первую очередь, нужно решить задачу не вываливать все строки, а выводить порционно сведения, запрашивая их по двум параметрам (начальная позиция выборки, размер выборки) или (номер страницы, размер выборки).