Задать вопрос
  • Почему не удаётся подключиться к PhpMyAdmin?

    phpmyadmin - это не база, а только панель управления базой.
    Тебе же нужно узнать адрес и порт mysql, и использовать их.

    PS:
    1. Лучше пересмотри свою идею использования DbUtils и посмотри, как в других проектах работают с базой. На том же metanit есть примеры работы с Dapper и EF Core. Иначе он у тебя превратится со временем в сотню утилит и твой код в лучшем случае будет выглядеть как какая-то процедурщина а-ля 1С, а в худшем случае - как спагетти. И это не говоря об эффективности.
    2. Вместо поделия Oracle под названием MySql.Data лучше использовать библиотеку MySqlConnector (причины тут: https://mysqlconnector.net/)
    Ответ написан
    1 комментарий
  • Доказано ли, и можно ли сжать произвольные данные до 20 байтов к примеру?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Допустим, существует некий алгоритм, который преобразует последовательность X длины M в последовательность Y, причём существует обратное преобразование. Неважно, что это за алгоритм конкретно - сжатие, создание "зерна" и пр. Но очевидно, что:

    1. Количество вариантов последовательности X составляет K в степени M, где K - размер словаря, т.е. количество возможных различимых значений одного элемента последовательности X. В случае байтовой последовательности это байт, т.е. K=256.

    2. Каждая последовательность X после преобразования даёт последовательность Y, причём две разные последовательности X дают разные последовательности Y.

    Соответственно количество возможных последовательностей Y равно количеству возможных последовательностей X. И соответственно если существует хотя бы одна последовательность Y короче последовательности X, то существует хотя бы одна последовательность Y длиннее последовательности X.

    Что, собственно, и наблюдается на абсолютно любом алгоритме компрессии - существуют входные данные, для которых результат попытки сжатия имеет бОльший размер, чем исходные данные.

    Что же до "зерна", которое разворачивается в гигабайты - во-первых, количество финальных миров определяется количеством значений "зерна", то есть вовсе даже не такое бесконечно большое, как кажется, во-вторых, созданный образ мира содержит значительное число повторяющихся элементов, а создание копий - это немножко не декомпрессия.
    Ответ написан
    Комментировать
  • Не подключается .CSS к html?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Скобка закрывающая
    Скриншот кода удалён модератором.
    Ответ написан
    5 комментариев
  • Зачем надо закрывать курсор при работе с БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что курсор может потреблять ресурсы. Например вы захотели взять первые 10 строк из 10000000 выборки но предварительно отсортировали. Выбрали 10 строк и не сделали финализирующие протокольные действия в Python. База данных будет удерживать в памяти алгоритмы и структуры данных для снапшота результата этого запроса до тех пор пока не придет явный CLOSE с вашей стороны либо интеллекуальный драйвер который еще и обладает логикой уборки мусора сам не догадается что Statement уже вышел из scope вашего использования и может быть удалён GC.

    Я был свидетелем ситуации когда крупное ent-приложение Java/Oracle переполняло память из-за неверной обработки Exception и плодила много незакрытых курсоров в БД. Java от этого не сильно страдала (GC всё убирал) но страдал Oracle. Потому что уборка происходила слишком поздно. Пофиксилось тогда переписыванием с try на try-with-resources.

    Поэтому если вы неряшливо обращаетесь с курсорами (явными и неявными (обычный select к примеру может прождать неявный курсор)) то не ваше приложение а база данных почувствует себя плохо. Как быстро и какие ошибки вы будете получать - зависит от настроек вашей БД.
    Ответ написан
    Комментировать
  • Как через аргумент функции, передать 'число' с ведущим нулём?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    число 0755, волшебным образом, превращается в 493
    Никаким не волшебным, а самым обычным и описанным в документации.

    Обратите внимание, что аргумент permissions необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль).
    https://www.php.net/manual/ru/function.mkdir.php
    Ответ написан
  • Почему PHP используется в не HighLoad приложениях?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Этот один человек профан и глупец, а PHP простой в изучении и использовании язык, который применяется в проектах с любым уровнем нагрузок.
    Ответ написан
    2 комментария
  • Можно ли хранить массивы в MySQL?

    Есть вариант хранить как строку "1,2,3,4"

    JSON

    мне надо 100 записей в бд для 10 id'шников

    И что? В чем проблема?

    как-то не правильно это все

    Читаем https://habr.com/ru/post/64524/
    Ответ написан
    Комментировать
  • Как сделать прогрессбар с процентами для получения ответа c json по api?

    @GrayHorse
    Можно использовать TransformStream.
    Кода будет поменьше, чем если создавать "прокси" ReadableStream. Единственное отличие, что TransformStream "ленивый". Т.е. если закомментировать await newResponse.blob(); onProgress не будет вызываться, хотя данные были загружены.

    Собственно вот онлайн демо.

    const response = await fetch("https://fetch-progress.anthum.com/30kbps/images/sunrise-baseline.jpg");
    total.value    = parseInt(response.headers.get("content-length")) || 0;
    
    function onProgress(chunk) {
        loaded.value += chunk.length;
    }
    const ts = new TransformStream({
        transform(chunk, controller) {
            onProgress(chunk);
            controller.enqueue(chunk);
        },
    });
    response.body.pipeThrough(ts);
    const newResponse = new Response(ts.readable);
    
    const blob = await newResponse.blob();


    Имей в виду, что "content-length" может отсутствовать.

    А также данные могут быть сжаты, если есть заголовок "content-encoding", который, к слову, по-умолчанию будет недоступен для кода при кросс-доменных запросах.

    И при "content-encoding" в "content-length" значение всегда указано для сжатого респонса, а в коллбеке будут уже не сжатые данные. Т.е. loaded в таком случае будет больше значения total ("content-length")

    ---

    "Прокси" ReadableStream:
    const reader = response.body.getReader();
    const readableStream = new ReadableStream({
        async start(controller) {
            while (true) {
                const {done, value} = await reader.read();
                if (done) { break; }
                onProgress(value);
                controller.enqueue(value);
            }
            controller.close();
            reader.releaseLock();
        },
        cancel() {
            void reader.cancel();
        }
    });
    const newResponse = new Response(readableStream);
    Ответ написан
    3 комментария
  • Как в mysql взять любую из первых 10 строк?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT ...
      FROM (
        SELECT ...
          FROM ...
          ORDER BY `id` DESC
          LIMIT 10
      ) AS `t`
      ORDER BY RAND()
      LIMIT 1
    Ответ написан
    Комментировать
  • Как написать запрос (устранение "сирот")?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    DELETE `t1`.*
      FROM `table` AS `t1`
      LEFT JOIN `table` AS `t2` ON `t2`.`id` = `t1`.`parent_id`
      WHERE `t2`.`id` IS NULL
    Ответ написан
    Комментировать
  • Беспл. хостинг beget не отправляет письма по php командой mail?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    1.Оформляйте код согласно правилам.
    2.Жалобы на работу сервисов (как этого, так и сторонних - желательно задавать тех. поддержке)
    3. Касательно вопроса: невозможность отправлять письма - ограничение бесплатного хостинга (для стимуляции покупки/усложнения спама)
    Ответ написан
    Комментировать
  • Как научиться декомпозировать задачи?

    Adamos
    @Adamos
    Дробить задачу еще на более мелкие совсем не охота

    Ну и зря. Вообще-то технологиям планирования совместной работы уже не первый век, и важнейший этап - как раз выделение тех участков работы, которые критичны для начала работы на других участках, и подтягивание их на диаграмме Ганта как можно раньше, чтобы уменьшить простой. Потом уже менее критичные задачи ложатся на свободные участки и параллелятся относительно друг друга.
    Так, например, нас учили делать генплан строительства еще 30 лет назад. До популяризации в РФ всяких там Скрамов и Канбанов.
    Ответ написан
    8 комментариев
  • Почему сайты не подключаются к SMTP яндекса?

    ev_g
    @ev_g
    Web dev.
    Потому что плохая идея использовать почтовые сервера Яндекса не в персональных целях. Яндекс всячески борется с попытками рассылок, подключения к сайту для отправки уведомлений и тп.

    Для рассылок есть свои сервисы.
    Для технических уведомлений – свои.

    В крайнем случае, подними свой почтовый сервер.
    Ответ написан
    Комментировать
  • Как подсчитывать время, которое пользовать проводит на веб-сайте?

    @deliro
    1. Пользователь открыл страницу и ушёл заваривать кофе. Потом забыл о странице и ушёл в лес на неделю. Вернулся спустя неделю, закрыл страницу. Сколько времени он провёл?
    2. Пользователь открыл страницу, проскроллил до середины за 10 секунд, переключился на другую, поработал там 30 минут, вернулся к твоей странице, посмотрел 5 секунд, закрыл её. Сколько времени он провёл?
    3. Всё тоже самое, только у пользователя стоит аддон, который выгружает вкладки из памяти.
    4. То же самое, что пункт №2, только это происходит на мобиле, он не выгружает браузер из памяти сутки, после чего телефон садится, после чего, спустя 12 часов, телефон снова включается и пользователь запускает браузер, вкладка с твоим сайтом всё ещё болтается в фоне
    5. Пользователь открыл страницу, но читает он со скоростью 1 буква в минуту и так он просидел 24 часа, после чего проскроллил ещё на страницу вниз и принялся читать новую порцию инфы. Сколько времени он проведёт суммарно после того, как дочитает эту порцию инфы?
    Ответ написан
    3 комментария
  • Как правильно и лучше?

    Adamos
    @Adamos
    Вариант с колбэком требует от того, кто будет пользоваться классом, слишком всерьез разбираться с ним.
    Три разных метода логичны, поскольку они выполняют три разные действия и это естественная, ожидаемая логика.
    А вот их общую низкоуровневую логику можно вынести в четвертый метод, приватный.
    Ответ написан
    Комментировать
  • Как добавить функции сортировки и поиска в таблице html?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    2 комментария
  • Как при добавлении новых записей в базу данных обновлить данные в PHP?

    @alexalexes
    Ваш вопрос правильнее звучит так:
    "У меня реализовано приложение чата в виде клиентской и серверной части.
    Когда один экземпляр приложения (клиентская часть) отправляет сообщение и оно фиксируется на сервере, необходимо, чтобы другой экземпляр приложения (клиентская часть) получил эти сведения без дополнительных манипуляций пользователя и как можно быстрей."
    Ответ:
    Есть несколько технологий общения клиента и сервера, чтобы получать актуальные сведения с сервера:
    - Длинные опросы,
    - Частые опросы,
    - Непрерывающееся соединение (web socket).
    Ответ написан
    1 комментарий
  • Как при добавлении новых записей в базу данных обновлить данные в PHP?

    Adamos
    @Adamos
    В РНР - никак.
    Этот код один раз отрабатывает на сервере, когда браузер запрашивает страницу, после чего никак на то, что отображается в браузере, уже не влияет.
    Ответ написан
    Комментировать
  • Передача данных из файла PHP в файл JS?

    Adamos
    @Adamos
    Если этот JS запускается с той страницы, которую отдает этот самый PHP, то
    $msg = array("Qwerty", "Lorem", "Ipsulm");
    ?>
    <script>
    let msgJS = <?= json_encode($msg) ?>;
    </script>
    <?php

    и подключенный после этого JS увидит эту переменную.
    Ответ написан
    Комментировать