• Как сохранить состояние первой загрузки сайт?

    @alexalexes
    Как обращаетесь к кукам?
    Используете ли специальный пакет в дополнение к vue?
    Написано
  • Как сохранить состояние первой загрузки сайт?

    @alexalexes
    Используйте переменную cookie для сохранения и восстановления выбранного языка.
    Написано
  • Почему sql запрос в php работает неверно?

    @alexalexes
    Тут есть маленький недочет, с обработкой ошибок при использовании запроса проверки дубликатов.
    Если как-то накосячить в запросе проверки, или СУБД перестанет возвращать ожидаемый результат, то проверка будет проигнорирована, и выполнится желаемое для пользователя действие без фактической проверки.
    Нужно, чтобы отрицательный исход проверок (нет дубликата), был точно интерпретирован как отрицательный исход при действительно корректно выполненном запросе.
    Где-то так:
    if($stmt->execute())
    {
      if ($stmt->fetch()) 
      {
        // есть, дубликат
      }
      else
      {
        // нет дубликата, можно регистрировать заявку
      }
    }
    else
    {
      echo 'Ошибка в запросе проверки дубликатов учеток!'
    }

    Чтобы повысить читаемость кода, лучше проверять не попытку фетчить, а сколько строк получает этот запрос.
    $stmt->store_result();
    if($stmt->num_rows == 0)
    {
    }

    Есть вариант, когда при успешном запросе можно быть уверенным, что в результате будет колонка с единственной строкой, причем с числом.
    $stmt = $connection->prepare("SELECT count(*) as cnt FROM users WHERE email = ? OR phone = ? limit 1");
    ....
    $row = $stmt->get_result()->fetch_assoc();
    if(isset($row['cnt'])) // если ли колонка
    {
    if($row['cnt'] == 0) // там точно что-то числовое, не null, не пустой массив, а именно число
    {
    }
    }
    Написано
  • Почему includes у массива сначала возвращает true, потом false?

    @alexalexes
    Функция includes чувствительна на сравнение данных не только по значению, но и по типу.
    Ответьте для себя на такие вопросы:
    let bookmarksArray = localStorage.getItem("currentBookBookmarks").split(",");

    Вы уверены, что в bookmarksArray получаются именно элементы как числа, а не строки с цифрами?
    let currentPage = localStorage.getItem("currentPage");

    А из локального хранилища какого типа данные выходят?
    Функция typeof () вам в помощь.
    Написано
  • Почему перестал работать file_get_contents?

    @alexalexes
    Все равно, проработайте вариант с ОС по другому совету. Этот, все таки, вариант аварийного решения, чтобы заработало здесь и сейчас.
    Написано
  • Как лучше добавлять большие куски html на чистом JS?

    @alexalexes
    Можно как угодно продумать модульность, это не вопрос написания кавычек в многострочном шаблоне.
    <script> // можно подключить отдельным файлом
    // Функция-шаблон вывода какого-то заголовка
    function template_1(data)
    {
      var html_str = '<h1>'
      + data.header 
    + '</h1>';
      return html_str;
    }
    </script>
    <script> // можно подключить отдельным файлом
    // Функция-шаблон вывода какого-то описания
    function template_2(data)
    {
      var html_str = `<p>
     ` + data.description + `
    </p>`;
      return html_str;
    }
    </script>
    <script> // можно подключить отдельным файлом
    // Функция коллбэка ajax запроса
    function response_output(response)
    {
       var response_data = JSON.parse(response.responseText); // ответ предполагает получения свойств header и description
       // Получаем указатель на некий контейнер, куда будет конструировать вывод запроса
       var html_container = document.getElementById('block-for-output-response');
       // Вставляем в контейнер сконструированный html из функций-шаблонов
       html_container.innerHTML = "<div class='inner-innera'>" // допустим, нужно еще во что-то обернуть
       + tepmlate_1(response_data)
       + tepmlate_2(response_data)
       + "</div>";
    }
    </script>
    Написано
  • Как в javascript игнорировать   и(или) считать его простым пробелом?

    @alexalexes
    скобки, а js их на свой счёт принимает.
    та же чушь если * в тексте.

    text1 = /тут длинная строка. слова разделены пробелами/g,
        text2 = /тут другая строка. слова разделены пробелами/g,

    Ну, так это не строки для замены, а регулярные выражения. Скобки, звездочка, и точка и кое-чего еще - это все синтаксически значимые элементы в регулярках, поэтому они и учитываются. Если вы хотите использовать регулярки в функции замены строки, то должны правильно ее составить, экранировав синстаксически значимые символы в просто символы.
    но по факту же это тоже пробел

    Обычный пробел и неразрывный пробел - это разные символы. Можно их заменить с помощью тех же регулярок, но нужен определенный навык их использования.
    Написано
  • Почему не срабатывает отключение кнопки в disabled при не нажатом cheked?

    @alexalexes
    privacy-policy

    shipping-payment

    Консоль не смотрели? Не кроет матом на знак минус в названии переменных?
    Написано
  • Как сделать такой scroll top как на примере?

    @alexalexes
    Третий вариант будет очень нестабильный, позиционирование кнопки будет не поспевать за действиями прокрутки. Лучше переключать режимы отображения кнопки в начале страницы, в середине и в конце.
    Написано
  • Как сделать эффект рваного фото?

    @alexalexes
    Если фон вокруг фотографии однотоновый, то можно поверх img добавить div с верхним и нижним фоном в виде png с прозрачными пикселями на месте рваного профиля. Ну, и повторить фон через repeat-x. Если нужен оригинальный профиль, можно сдвигать x с помощью JS на произвольное значение.
    Написано
  • Как такое может быть?

    @alexalexes
    dNertyco, тут есть пример, почему это не пересечение - https://habr.com/ru/post/448072.
    По идее, если добавить функцию, которая пронумерует строки первой таблицы, затем следующим подзапросом присоединим вторую таблицу, далее сгрупируем или сделаем distinct к результирующей выборке, то это можно считать пересечением. Но я могу ошибаться.
    Написано
  • MySQL - выборка диалогов с тремя последними сообщениями?

    @alexalexes
    ThunderCat, а как еще сообщения по разным чатам раскидать?
    Сущность диалог (он же чат в широком смысле слова) есть, ее нужно выделить.
    Написано
  • MySQL - выборка диалогов с тремя последними сообщениями?

    @alexalexes
    Ты же понимаешь, что CTE может вернуть десяток записей с dm_rank = 1? тут нужно применять ROW_NUMBER() и расширять сортировку до обеспечения уникальности записи.

    Да, нужно заглянуть в документацию, чем отличаются оконки-счетчики. Я, обычно, по ситуации вставляю rank/row_number/dense_rank. На эксперименте сразу видно, что больше подходит. Переписал сравнения и сортировки по датам на работу с id сообщения. Идентификатор быстрее обработать, чем дату, к тому же к ключам может быть индекс, просто по тому, что ключу необходим индекс.
    Это даже если не нудеть о том, что вот никакое ограничение в структуре не мешает d.date_latest_message не соответствовать максимальному DM.added_date.

    Ну, пускай будет максимум по дате-время сообщения диалога.
    Да ладно! легко эмулируется на коррелированном группирующем подзапросе.

    Ок. Я считал, что такие финты с подзапросами - это от безысходности, если есть возможность использовать более приспособленные инструменты, то почему бы и нет. Привел пример, с подзапросом.
    Написано
  • Как массово изменить расширение изображений на свой фомат в MYSQL базе?

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

    @alexalexes
    Ок. Главное, запомните правило "Семь раз отмерь, один раз отрежь". То есть "Семь раз селекть, один раз апдейть (делеть)".
    То есть на update и delete, если делается ручками и что-то масштабное, нужно всегда составлять выборку, чтобы понять, чтоб будет делать данная операция.
    Написано
  • Как в PostgreSQL просуммировать Киловаты, группируя их по временным интервалам?

    @alexalexes
    Экспериментируйте. Добавил второй вариант запроса.
    Я там знаки интервалов напутал, сейчас исправлено.
    Написано
  • Как в PostgreSQL просуммировать Киловаты, группируя их по временным интервалам?

    @alexalexes
    Теперь понятно, что значит periods.id - это не идентификатор временного отрезка, а это идентификатор прибора учета?
    Написано
  • Как в PostgreSQL просуммировать Киловаты, группируя их по временным интервалам?

    @alexalexes
    Пример данных приведите. Непонятно, как у вас будут записываться значения потребленной энергии - либо дифферентными значениями (разница показаний счетчика между двумя соседними замерами), либо накопительные (то, что показывает счетчик в момент замера).
    Второй вопрос. Запрос должен учитывать переполнение счетчика? Какое макс. значение?
    Вопрос третий. Чтобы это не выглядело как задание, какой запрос составили вы, чтобы он хотя бы запускался и что-то выводил?
    Написано
  • Как реализовать такое на сайте?

    @alexalexes
    Черт с ним с уроком. Хотел найти пример, чтобы запросы с параметрами правильно писали, без строковых склеек, типа " ... where login = $login ". А сейчас даже ОРМ-ки есть ненавистные. Пора собирать сборник true практик, где нет мин замедленного действия.
    Переписал на концепт.
    Написано