Задать вопрос
  • Что значит такая запись?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Ошибка в регулярном выражении?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    regexp = /^[a-zа-яё0-9\s\-\(\):]$/iu;Лишние эскейпы не нужны.
    Ответ написан
    Комментировать
  • Как соединить две одинаковых по структуре таблицы друг с другом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если в первой таблице ноль, а во второй единица - в какой из них правильное значение? А если наоборот?
    Ответ написан
    2 комментария
  • Почему срабатывает обращение по id, но не срабатывает обращение по классу?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что s.
    let box = document.getElementsByClassName('box');
    Функция возвращает не один элемент, а коллекцию HTMLCollection.
    Ответ написан
    4 комментария
  • Почему не верно отрабатывает вложенный запрос с группировкой MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `c`.*
      FROM (
        SELECT `value_id`, MAX(`created_at`) AS `created_at`
          FROM `counter`
          GROUP BY `value_id`
      ) as `t`
      JOIN `counter` AS `c`
        ON `c`.`value_id` = `t`.`value_id` AND `c`.`created_at` = `t`.`created_at`
    Ответ написан
  • Как предотвратить параллельное выполнение запросов пользователя?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Обычное состояние гонки. Решается, например, блокировкой таблицы или строки.
    Ответ написан
    Комментировать
  • Какой лучше использовать сокет PHP с примерами?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Как реализовать удаление логина и пароля из базы данных через какое-то время?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Легче всего добавить дату/время окончания действия логина и проверять её.
    Удалять тоже можно, но только если нигде в сервисе не отмечаются/логируются действия пользователей.
    Ответ написан
    Комментировать
  • Как реализовать поиск по Linked List?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Что я делаю не так?
    Не занимаетесь отладкой своей программы. Если не умеете пользоваться отладчиком, то возьмите лист бумаги, карандаш, и пошагово пройдите всю свою программу.
    Если таки ничего не поможет
    node->value на первом же элементе равняется нулю, соответственно отрабатывает последняя ветка условия и возвращает false.
    Ответ написан
    Комментировать
  • Компиляция в tasm. Как через Far Manager создать файлы .bat и .lst?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Shift+F4 - создать/редактировать файл. Вводите имя a.bat, откроется окно редактора, там набираете текст.
    lst-файл создастся автоматически при компиляции.
    Ответ написан
    1 комментарий
  • Что это за метод сжатия?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    p[...] - это номера цветов из общей палитры, индексы от 0 до 3.
    Дальше идут сами цвета точек.
    Цифра 0..3 - индекс цвета в палитре спрайта
    x - начало повторений. Сразу после него идет цифра индекса цвета, дальше до запятой - количество повторений (x011, - повторить 0 одиннадцать раз).
    "p[0,2,5,8]x022,1111x010,x18,x07,x110,x05,x17,33111000x18,32311000x19,3311003333x111,001133x110,001113x110,011213x110,011113x110,011113x110,0011233x15,x35,00222331133322200222203333002222"
    Получаем строку из 256 символов
    0000000000000000000000111100000000001111111100000001111111111000001111111331110001111111132311000111111111331100333311111111111001133111111111100111311111111110112131111111111011113111111111101111311111111110011233111113333300222331133322200222203333002222

    Разбиваем на 16 подстрок
    0000000000000000
    0000001111000000
    0000111111110000
    0001111111111000
    0011111113311100
    0111111113231100
    0111111111331100
    3333111111111110
    0113311111111110
    0111311111111110
    1121311111111110
    1111311111111110
    1111311111111110
    0112331111133333
    0022233113332220
    0222203333002222

    Заменяем индексы цветами из палитры, получаем жучка yj-zin3n79g0u0dgucf6teanlfm.png
    P.S. Если массив индексов палитры не указан, то используется полная базовая палитра. Для палитры спрайта до 10 цветов включительно индексы кодируются одной цифрой (0-9), до 100 цветов - двумя цифрами (00-99), и т.д.
    Ответ написан
    3 комментария
  • Как понять, когда присваивается функция, а когда результат ее выполнения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Нет. Переменной number присваивается результат работы функции numberGenerator. А возвращает эта функция как раз функцию checkNumber.
    Ответ написан
    Комментировать
  • Запись больших xml в MYSQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Жжжуть. Делать выборку в цикле для каждой строки, да ещё и генерируя каждый раз запрос - это, наверно, худший из возможных вариантов.
    В таблицу `products` добавляете колонку `price`. Вешаете на эту таблицу триггеры на вставку и изменение строки, которые при добавлении или изменении цены заносят её в таблицу `prices`. Напрямую с таблицей `prices` из этого скрипта не работаете.
    В цикле формируете и накапливаете наборы данных для вставки. Как только накопится некоторое количество, вставляете их одним запросом. Используете ON DUPLICATE KEY UPDATE для перезаписи изменённых значений. По окончании цикла выгружаете оставшиеся наборы.
    Примерно так
    $data = [];
    while ($z->name === 'offer') {
      ...
      $data[] = '("'.$id.'","'.htmlspecialchars(urldecode($url)).'","'.$today.'",'.(int)$price.')';
      if (count($data) > 99) {
        $sql = 'INSERT INTO `products` (`id`,`url`,`date`,`price`) VALUES ' 
             . implode(',', $data)
             . 'ON DUPLICATE KEY UPDATE `url` = VALUES(`url`), `price` = VALUES(`price`)';
        mysqli_query($link6,$sql);
        $data = [];
      }
      ...
    }
    if (count($data) > 0) {
      $sql = 'INSERT INTO `products` (`id`,`url`,`date`,`price`) VALUES ' 
           . implode(',', $data)
           . 'ON DUPLICATE KEY UPDATE `url` = VALUES(`url`), `price` = VALUES(`price`)';
      mysqli_query($link6,$sql);
    }
    Ответ написан
  • Как сделать кириллицу читабельной в HTTP_REFERER?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $str = 'test.ru/?utm_source=%D0%A2%D0%95%D0%A1%D0%A2';
    print urldecode($str);

    test.ru/?utm_source=ТЕСТ
    Ответ написан
    Комментировать
  • Как отсортировать массив?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В ассоциативном массиве PHP порядок всегда соответствует последовательности добавления в него ключей.
    $array = [
      [
        "gq_address" => "188.120.254.140",
        "gq_hostname" => "•   RGPlay | DarkRP [Быстрая загрузка]",
        "gq_maxplayers" => 128,
        "gq_numplayers" => 0,
        "gq_online" => true,
        "gq_port_client" => 27015,
      ], [
        "gq_address" => "62.109.18.242",
        "gq_hostname" => "Default Breach Server",
        "gq_maxplayers" => 128,
        "gq_numplayers" => 0,
        "gq_online" => true,
        "gq_port_client" => 27015,
      ]
    ];
    $array = array_map(function($el) {
      return [
        'gq_hostname' => $el['gq_hostname'],
        'gq_address' => $el['gq_address'],
        'gq_port_client' => $el['gq_port_client'],
        'gq_online' => $el['gq_online'],
        'gq_numplayers' => $el['gq_numplayers'],
        'gq_maxplayers' => $el['gq_maxplayers']
      ];
    }, $array);
    var_dump($array);

    array(2) {
      [0] => array(6) {
        ["gq_hostname"] => string(55) "•   RGPlay | DarkRP [Быстрая загрузка]"
        ["gq_address"] => string(15) "188.120.254.140"
        ["gq_port_client"] => int(27015)
        ["gq_online"] => bool(true)
        ["gq_numplayers"] => int(0)
        ["gq_maxplayers"] => int(128)
      }
      [1] => array(6) {
        ["gq_hostname"] => string(21) "Default Breach Server"
        ["gq_address"] => string(13) "62.109.18.242"
        ["gq_port_client"] => int(27015)
        ["gq_online"] => bool(true)
        ["gq_numplayers"] => int(0)
        ["gq_maxplayers"] => int(128)
      }
    }
    Ответ написан
    3 комментария
  • Хранимые функции, как вернуть исключение?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вы при подключении к базе нужный режим установили?
    php.net/manual/ru/pdo.error-handling.php

    В самом MySQL можно генерировать ошибку командой SIGNAL
    Ответ написан
    2 комментария
  • Как выбрать последние записи по определенному полю?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `k`.*
      FROM (
        SELECT `serial`, MAX(`event_date_time`) AS `event_date_time`
          FROM `keys`
          GROUP BY `serial`
      ) AS `d`
      JOIN `keys` AS `k`
        ON `k`.`serial` = `d`.`serial` AND `k`.`event_date_time` = `d`.`event_date_time`
    Ответ написан
    Комментировать
  • Возможно ли дехеширование при определенных условиях?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Хэширование, в общем случае, необратимо, потому что сам алгоритм хэширования не гарантирует взаимно-однозначного соответствия исходных данных и их хэша.
    Если исходные данные по размеру больше хэша, то очевидно, что найдётся несколько различных исходных данных с одинаковыми хэшами. Например, хэш-функция выдаёт 0 или 1 (один бит), а на вход поступили цифры от 0 до 7 (три бита).
    Если размер данных меньше или равен размеру хэша, то зависит от алгоритма. Промышленные алгоритмы строятся с хорошей равномерностью распределения хэшей, поэтому можно допустить, что на таких данных функция хэширования имеет примерно однозначное соответствие.
    Но, в любом случае, у функции хэширования нет простого алгоритма обратного преобразования.
    Ответ написан
    Комментировать
  • Как правильно работать с событием EVENT?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А откуда MySQL узнает, что надо выполнить этот эвент, если он лежит где-то в файле, а не в базе данных?
    Ответ написан
    Комментировать
  • Кто подскажет в чем трабл?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Переменная key не определена. Вы перепутали местами ключи и значения в объекте.
    Ответ написан
    Комментировать