Задать вопрос
  • Не добавляется строка в Бд через postman что делать?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Гуглите:
    1. PDO
    2. Логирование ошибок MYSQL
    mayton2019 правильно говорит, что вставка в бд выполняется командой INSERT INTO
    Ответ написан
    Комментировать
  • Почему возникает PHP Notice при запросе get_the_terms?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    if (empty($_POST)) {
    $post = (object) json_decode(file_get_contents('php://input'), true)['params'] ?? (object) [];
    }
    Если запрос сделан с помощью axios, то приходит в php://input
    ЗЫ: Я не в курсе как ВП валидирует запросы. Из того что я предложил придёт то, что было отправлено.
    Ответ написан
  • Как передать путь к файлу в базу данных?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    1. Вам следует почитать о разнице между mysql и mysqli, использовать PDO и передавать данные в бд исключительно при помощи плейсхолдеров.
    2. Вы должны проверить, что полученные данные действительно являются изображением, а не вредным кодом.
    3. Загруженный файл может не открываться из-за отсутствия слеша в начале пути. Или иной опечатки в url файла.
    Но, в свете предыдущих пунктов, это не основная проблема. Первые два значительно важнее.
    Ответ написан
    Комментировать
  • Как получить трек вызовов методов и время их выполнения?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Если предположить, что при вызове каждого метода происходит измерение времени начала, времени окончания и запись в лог, то единственное, что можно по нему определить - это глубину метода в стеке.
    Целесообразно добавить функцию с логированием в те методы, которые в чем-то подозреваете.
    А еще лучше посмотреть логи sql.
    Ответ написан
  • Как исправить ошибку синтаксиса mysql?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Если вы не используете PDO, то по крайней мере уж не пихайте выражения в формирование строки sql.
    И константы тоже не пихайте.
    Подготовьте переменные заранее. Так, чтобы они без закрытия кавычек и конкатинации вставлялись.
    Тогда IDE сама всё подскажет и вам не придётся насиловать мозг ни себе ни окружающим.
    Ваш sql сейчас настолько нечитаем, что в нём даже нет смысла ковыряться.

    P.S. Если этот код - часть какого-то модуля, который вы не можете изменить, то дело в каких-нибудь символах, которых он не ожидает. Нужно во вторых избавить все входящие данные от любых символов кроме букв и цифр, во первых - прекратить с ним любые производственные отношения.
    Ответ написан
    1 комментарий
  • Как запретить Яндекс Диску изменять даты файлов при синхронизации с ПК ?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Исходя из того, что я понял из того, что мне объяснили в ТП Яндекса (занятный каламбур):
    они не сохраняют файл в буквальном смысле. Они создают новый файл с данными из полученного.
    И по некоторым слухам дополняют его еще и чем-то своим. Поэтому технически дата изменения не может остаться прежней.
    Бесит неистово.
    --------------------
    upd. На днях пытался переосмыслить это поведение (неизвестно из кой ОС, что если birthtime нет, допустимо ли mtime.. итд..)
    Всё же нет. На фоне работы других сервисов не выходит.
    Просто для хранения котов и дней рождений это не важно, а полтора гика финансовой погоды не делают.
    Потому воз поныне там.
    Ответ написан
    1 комментарий
  • В каких ситуациях можно обойтись без плейсхолдеров в запросе?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Обойтись без плейсхолдеров можно в случаях, когда вы точно уверены в типе, валидности и происхождении данных.
    На начальных этапах следить за этим не сложно. Но ваше приложение будет развиваться и расти. Помнить что где и откуда станет труднее. В моей практике и вовсе был случай, когда я, допустив ошибку, сам себе сделал инъекцию после которой пришлось поднимать бд из бэкапа.
    Сам процесс принятия решения плейсхолденить или не плейсходерить - уже когнитивный труд. А трудолюбие обратно пропорционально интеллекту. Проще всё всегда плейсхолдерить и жить спокойно. При этом освободившийся ресурс мозга найдет себе более рационально применение.
    Ответ написан
    Комментировать
  • Какая есть библиотека времени для Nuxt?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    обновлялась 3 года назад

    Иногда это не плохо, а хорошо.
    Способы измерения времени за последние 100 лет не особо изменились.
    moment прекрасно работает.
    Ответ написан
    Комментировать
  • Как в цикле php установить значение по умолчанию если проверка на значение в цикле не было найдено?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    До завершения цикла никому во всей вселенной неизвестно присваивать ли класс active первому элементу.
    А ваш выводит данные во время выполнения.
    Если он уже вывел на экран первый элемент, ему до фени что там в следующих.
    Принятие решения должно произойти до вывода.
    Пройдите в цикле $Array, поймайте что нужно, измените первый элемент, если требуется.
    А потом уже выводите на экран в новом цикле.
    У меня тоже всегда какие-нибудь траблы возникают, если смешивать логику и вывод данных.
    Лучше мухи отдельно, котлеты отдельно.
    Ответ написан
    Комментировать
  • Какое приложение написать для понимания ООП?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Полноценного понимания не существует.
    Я долго писал в процедурном стиле и долго не мог понять зачем вообще нужны эти классы какие-то.
    Всё решалось функциями. С ростом сложности проекта приходилось передавать в функции всё больше и больше аргументов. Когда аргументов стало слишком много, я стал передавать в качестве аргумента массив с переменными.
    Функция изменяла значения в этом массиве и возвращала.

    Иногда (часто) функция должна была вызвать другую функцию и передать туда этот массив. Количество функций росло, цепочки из них становились всё длиннее и я даже стал путаться в том, какая функция в какой цепочке (трейсе) участвует.
    Тогда я стал раскладывать группы функций по разным подключаемым файлам и называл эти файлы так, чтобы по названию понять какой группе переменных они нужны.

    А потом я случайно узнал, что эти какие-то непонятные методы, которые "являются поведением объектов класса" (как это обычно объясняют) на самом деле просто функции и есть. И оказалось, что можно не пропихивать массив через них, а наоборот - функции сложить в этот массив. Получилось, что класс это такой "массив" в котором есть не только переменные, но и функции. И эти функции могут видеть все эти переменные, даже если не написать global $var. И это было как раз тем, чего я очень желал и радости моей не было предела.
    Кстати, узнал я это, когда забавы ради кодил 2D платформер на C# в Unity.
    Ответ написан
    Комментировать
  • Заказывать CMS с 0 или использовать существующие?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Выбор фреймворка - это не ваша зона ответственности. Не потому что вы некомпетентны, а потому, что не вам его поддерживать.
    Вероятно, вы захотите, чтобы у вас было и мобильное приложение, которое "питается" от того же бэкенда.
    А значит бэкенд не должен заниматься никаким html, отдавать только json.
    И WP я тут вообще не могу как-то серьёзно рассматривать. А если проект надо будет поддерживать и расширять, то останется либо уволиться либо повеситься.
    Фронтенду до фени кто ему отдаст этот json. Даже если там нэтивный php.
    Поэтому более актуальными вопросами будут: Vue vs React, SPA vs PWA.
    А что работает с сервером и бд не важно. Laravel / Yii / Simfony / phpOnly - разработчик сам разберётся.
    Ответ написан
    Комментировать
  • Обледенение двух массива данных, как сделать?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    // $row->name выглядит опрятнее, чем $row['name']
    // Для этого превращаем массив в объект. (object)
    while ($row = (object) mysqli_fetch_assoc($result)) {
    
        //$kol_grop++; Это не нужно
    
        // $name_grop .= $row['name'] . ',';
        // Не следует использовать конкатенацию в цикле.
        // Лучше собрать в массив и склеить в implode после цикла.
    
    
        // array_push($array_nama_g, array('name'=>$row['name'], 'subscriber_bes'=>$row['subscriber_bes']));
        // Это можно выразить иначе:
        // 'name' кладем в ключ, 'subscriber_bes' в значение
        $array_nama_g[$row->name] = $row->subscriber_bes;
    
    }
    
    // $name_grop .= $row['name'] . ','; <-- это было в цикле while
    // Вместо этого берём ключи из $array_nama_g и клеим в строку:
    $name_grop = implode(',', array_keys($array_nama_g));
    // А вообще я так и не понял зачем нужна эта переменная.
    // Да еще совпадающая с именем ключа в res_raspi. Очень запутывает.
    
    //api
    // Вместо array() можно использовать []
    $res_raspi = [
        ['name_grop'      => 158,
         'subscriber_bes' => '125588,87156978,899'],
    
        ['name_grop'      => 668,
         'subscriber_bes' => '188,8799']
    ];
    
    /*
    for ($i = 0; $i < $kol_grop; $i++) {
        $fed_key_array = array_search($res_raspi[$i]['name_grop'], array_column($array_nama_g, 'name'));
        $users_id = $array_nama_g[$fed_key_array]['subscriber_bes'];
        // $users_id будет перезаписываться каждую итерацию цикла.
        // Или планируется его применить до наступления следующей?
    }
    */
    
    // Записываем это более понятным образом
    foreach ($res_raspi as $rapi) {
        $users_id = $array_nama_g[$rapi['name_grop']];
    }


    убираем комментарии
    while ($row = (object) mysqli_fetch_assoc($result)) {
        $array_nama_g[$row->name] = $row->subscriber_bes;
    }
    $name_grop = implode(',', array_keys($array_nama_g));
    
    $res_raspi = [
        ['name_grop'      => 158,
         'subscriber_bes' => '125588,87156978,899'],
        
        ['name_grop'      => 668,
         'subscriber_bes' => '188,8799']
    ];
    foreach ($res_raspi as $rapi) {
        $users_id = $array_nama_g[$rapi['name_grop']];
    }

    Это в более цивилизованно выглядит, но работает так же.
    Чтобы что-то исправить надо задачу понимать.
    Что с чем нужно объединить?
    Ответ написан
    Комментировать
  • Двойная сортировка со стрелочной функцией. Как реализовать?

    Lastor
    @Lastor Автор вопроса
    В чем сила, брат? В ньютонах.
    const sortByJob = (d1, d2) => (d1.job_id < d2.job_id) ? 1 : (d1.job_id === d2.job_id) ? ((d1.last_name > d2.last_name) ? 1 : -1) : -1

    Неужели так?
    Тогда я хочу обратно в sql: ORDER BY job_id, last_name
    =)
    Ответ написан
    Комментировать