Задать вопрос
  • Вопроса нет, и все?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Uncaught SyntaxError: Unexpected token < in JSON at position 0
    Читаем. Переводим.
    Открываем инструменты разработчика, вкладку нетворк. Отправляем наш гениальный запрос - смотрим в неменее гениальный ответ от сервера, в котором наверняка что-то типа "ой-вей, ваш пхп код полный шлак, в котором ошибок больше чем на помойной кошке блох". Исправляем ошибки, и - о чудо! Все заработало!
    Ответ написан
    Комментировать
  • Как переставляя столбцы и строки матрицы, переместить самый большой элемент в верхний левый угол?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вы не уточнили, что понимается под словом "переставляя". Можно ли скажем, переставить первую и пятую строку местами? Или может быть можно, скажем, пятую строку поставить в начало...
    А может быть под "переставляя" имеется в виду перестановку рядом стоящих строк местами?
    В любом случае имеет смысл сперва найти самый ольшой элемент в матрице, а потом переставлять строки, чтобы он всплыл в угол.
    В чем конкретно у вас проблема? Если вы хотите готовый алгоритм, то этот ресурс не для этого. а на конкретные вопросы тут с удовольствием ответят и помогут.
    Ответ написан
    3 комментария
  • Как должен выглядеть алгоритм цикла с таким условием?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Да тут 2^3 = 8 вариантов. Перебрать их все и делов.
    Если уж прям хочется цикла, то использовать первые три бита двоично представление первых 8 цифр, которые дадут вам все варианты значений А, Б и С. Но если вы этого не понимаете, то зачем оно вам.
    Ответ написан
    Комментировать
  • Чем снять образ диска?

    @Zzzz9
    ddrescue
    Ответ написан
    Комментировать
  • Asterisk все еще используется?

    @brar
    Конечно, актуально.
    Мало того, Asterisk - это база/фундамент для всех остальных (по крайней мере, львиной доли) существующих продуктов виртуальных АТС на рынке.
    Будете знать Asterisk, значит сможете легко разобраться с любой его коммерческой/некоммерческой "надстройкой".
    А будете знать только определенную надстройку, значит будете знать только её.
    Ответ написан
    Комментировать
  • Как запустить задачу меньше чем за 1 мс?

    @oleg_ods
    Операционные системы на которых работает C# не поддерживают Real Time взаимодействие.

    Методы Thread.Sleep(10)/Task.Delay(10) означают что задержка будет как минимум(!) 10 мс, но не дают никакой гарантии что задержка будет ровно 10 мс. То есть это значит что 10 мс поток будет бездействовать, а потом встанет в очередь за получением процессорного времени.

    Как написали выше Вам нужно смотреть в сторону RTOS и более низкоуровневых языков программирования. На настольных ОС такие задачи не решаются.
    Ответ написан
    Комментировать
  • Как запустить задачу меньше чем за 1 мс?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такие задачи обычно делают на языке Си и на микро-контроллерах или на хитрых операционках типа RTOS.

    C# с его уборкой мусора может внести в поток большие погрешности. Ну вобщем зависит сильно от задачи. Для игр должно хватать шарпов. Для чего-то серъезного скорее всего нет.
    Ответ написан
    2 комментария
  • Дают ли выигрыш ссылки на элементы массива и на поля объектов в PHP?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    С точки зрения памяти не даёт, потому что в РНР и так очень оптимальное управление памятью.
    В частности, при присвоении значений переменным применяется принцип copy-on-write. Объекты же и так всегда копируются по ссылке.

    С точки зрения "вычислять адрес промежуточного объекта" - я никогда не слышал о таких проблемах. Судя по всему, это явно не является узким местом для динамически интерпретируемого языка.
    В любом случае, учитывая copy-on-write, исходно это снова будет опять ссылка.

    В общем, я настоятельно рекомендую последовать совету мудрого старика Дональда Кнута, и не бежать впереди паровоза, заранее пытаясь оптимизировать то, что вообще никогда не тормозит.
    Данный случай является просто идеальной иллюстрацией именно такого случая, когда проблемы от непредсказуемого поведения кода из-за пихания ссылок везде и всюду стократно превысят любые воображаемые плюсы.
    Ответ написан
    2 комментария
  • Как переписать скрипт, чтобы AJAX возвращал ответ на запрос в правильном порядке?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Собственно, непонятно зачем делать 4 отдельных запроса.
    В идеале - делайте один запрос на сервер (в текущем примере - на /cart/deleteOneAjax/<id>). А сервер сам должен обработать все необходимые изменения и вернуть новый вариант корзины.
    Ответ написан
    Комментировать
  • Почему base64 увеличивает длину строки?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что вы закодировали текстовое представление этой последовательности, которое занимает в 2 раза больше байт, чем сама исходная последовательность.
    Если закодировать саму 12-байтную последовательность в base64, получится YoVpJUGj0kcVXHXf (16 символов).
    Ответ написан
    Комментировать
  • Как лучше проверять строку на пустоту в php?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Недостатки исходных вариантов проверки:
    $str = "0";  // непустая строка, содержащая цифру ноль
    if (!$str) echo "bool false\n"; // сработает
    if (empty($str)) echo "is empty\n"; // сработает
    
    $str = null; // не строка
    if ($str == "") echo "equals empty str\n"; // сработает
    if (strlen($str) === 0) echo "zero length str\n"; // сработает


    Поэтому лучший вариант, как и предложил Rsa97, проверять строгое равенство === с пустой строкой.
    Ответ написан
    Комментировать
  • Почему у меня не получается учиться, даже когда я все делаю все в точности как в видеоуроках?

    QuiShimo
    @QuiShimo
    Держу путь на бекэнд :)
    Привет!

    В этом весь процесс обучения по курсам или самостоятельно. Ты смотришь ролик, повторяешь, попадается проблема идешь в гугл искать её решение.

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

    Идеально - это найти сообщество, где помогут найти решение проблемы, которое не удалось нагуглить. Либо использовать для этого такие ресурсы, как этот. Чтобы оптимизировать процесс обучение и решения проблем.

    А также, разбавить обучение различными источниками - книгами, статьями и так далее, особенно с актуальной информацией.

    Сами проблемы стоит воспринимать как опыт, который дает намного больше, чем отлично работающее приложение/верстка, просмотр туториалов и курсов.
    Ответ написан
    Комментировать
  • Почему у меня не получается учиться, даже когда я все делаю все в точности как в видеоуроках?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Потому что обучение, которое состоит в тупом повторении за учителем - это самый примитивный уровень освоения знаний.

    IT же - это в основном как раз навыки решения проблем и поиска информации (1 час пишем код, 12 часов отлаживаем), которые являются вольными творческими процессами - их надо проделывать самостоятельно, собирая факты по кусочкам.
    Ответ написан
    Комментировать
  • Кто знает самый быстрый шаблон сайта?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Дарю:
    <html>
    <head></head>
    <body>Hello world!</body>
    </html>
    gps близкий к 100 на любом устройстве
    Ответ написан
    3 комментария
  • Не получается float при явном преобразовании textContent. Что не так?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Number.prototype.toFixed()
    Возвращаемое значение
    Строка, представляющая numObj, не использующая экспоненциальную запись и содержащая ровно digits цифр после десятичной запятой.

    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    1 комментарий
  • Какова реальная предельная длина сегмента сети на базе витой пары?

    martin74ua
    @martin74ua Куратор тега Компьютерные сети
    Linux administrator
    откройте учебник и почитайте как работает ethernet. Как именно передается пакет, что такое преамбула и т.д. И многое станет понятно.
    Ответ написан
    5 комментариев
  • Как защитить WiFi пароль?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    В организации не нужно использовать пароль, а нужно использовать авторизацию, привязанную к логину и паролю пользователя, например через Radius.
    Ответ написан
    8 комментариев
  • Как переписать подключение к базе данных, по принципам ООП?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак.
    Это не стёб и не троллинг. Это единственный возможный ответ на этот хороший, в сущности, вопрос.

    ООП - это не картина, которую купил и на стенку повесил, для красоты.
    Это инструмент для решения какой-либо задачи.
    Если задачи нет, то и ООП применять не следует.

    в данном случае перед ООП надо выучить куда более базовые вещи.
    Например научиться применять готовые классы, такие как mysqli
    узнать почему за использование @ программистам в аду льют кипяток на самые нежные части тела
    выучить что exit('Ошибка подключения'); - это говнокод
    ну и открыть для себя разделение логики работы с данными и логики отображения. То есть сначала получить все данные, а потом только выводить.

    Эту страницу можно переписать в соответствии с принципами аккуратного кода

    Сначала сделать файл config.php.
    Этот файл можно будет исключить из системы контроля версий и таким образом иметь на каждом сервере свой

    <?php
    return [
        'db' => [
            'host' => '127.0.0.1',
            'port' => 3306,
            'db'   => 'pizza',
            'user' => 'root',
            'pass' => '',
            'charset' => 'utf8mb4',
        ]
    ];

    потом сделать файл mysqli.php
    Этот файл можно будет включать во все скрипты, которым нужно соединение с БД
    <?php
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $db = new mysqli(
        $config['db']['host'], 
        $config['db']['user'], 
        $config['db']['pass'], 
        $config['db']['db'], 
        $config['db']['port']
    );
    $db->set_charset($config['db']['charset']);
    $db->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);


    Потом сделать страницу pizza.tpl.php в которую поместить весь HTML
    .
                <select id="single" class="form-control" name = '1234' >
                    <option value="" disabled selected style='display:none;'>выберите тип</option>
                    <?php foreach($types as $object): ?>
                        <option value ="<?=$object['id']?>"><?=$object['name']?></option>
                     <?php endforeach ?>
                </select>


    И потом сделать страницу pizza.php на которой собрать это всё вместе
    <?php
    $config = require 'config.php';
    require 'mysqli.php';
    
    $sql="SELECT * FROM pizza";
    $types=$db->query($sql)->fetch_all(MYSQLI_ASSOC);
    
    include 'pizza.tpl.php';


    После этого можно будет потихоньку приглядываться к ООП.
    Например сделать класс pizzaModel
    Но делать его будет иметь смысл только тогда, когда мы будем знать, какие еще действия с пиццей будет производить этот код
    Ответ написан
    5 комментариев
  • Не отправляются данные веденные из input в бд (Mysql, PHP)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    И не будет никакой ошибки, потому что код взят из какого-то древнего руководства, написанного обезьяной.
    Меня вот поражает, ну ОТКУДА вы вы выкапываете это дерьмо мамонта? На каком ютуб канале, какой гамадрил вот это вот всё вещает?

    - print "Ошибка!: " . $e->getMessage() писал дебил, потому что специально выводить ошибки не нужно - РНР и так выведет ошибку, если его об этом попросить.
    - try {} catch (PDOException $e) { писал дважды дебил, потому что ПДО будет кидать исключения только если ему об этом сказать при соединении. А дебил об этом не сказал
    - try {} catch (PDOException $e) { писал трижды дебил, потому что см. выше. Не нужно ловить ошибку, чтобы её вывести.
    - VALUES ('{$name}', '{$surname}', '{$age}', '{$email}', '{$phone}', '{$index}'"); - а вот это уже, я думаю, не руководство, а самодеятельность автора кода. Даже в дебильном руководстве такое вряд ли можно увидеть.
    - enter' => $submit - это уже тоже автор кода, от излишнего усердия и ПОЛНОГО не понимания своих действий
    - ну и да, почему-то в списке полей id_user есть, а в VALUES внезапно нету. "Где логика, где разум?" (с)

    В общем учимся работать с БД в РНР заново
    .
    // Параметры для подключения
    $db_host = "localhost";
    $db_user = "root"; // Логин БД
    $db_password = "root"; // Пароль БД
    $db_base = 'test'; // Имя БД
    $db_encoding = "utf8mb4" // кодировка 
    
    // Подключение к базе данных
    $db = new PDO("mysql:host=$db_host;dbname=$db_base;charset=$db_encoding", $db_user, $db_password);
    // Просим ПДО сообщать об ошибках
    $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    
    // Собираем данные для запроса
    $data = array( 'name' => $name, 'surname' => $surname, 'age' => $age, 'email' => $email, 'phone' => $phone, 'index' => $index);
    // Подготавливаем SQL-запрос
    $query = $db->prepare("INSERT INTO `users`(`user_name`, `user_surname`, `user_age`, `user_email`, `user_phone`, `user_index`) 
                         VALUES (:name, :surname, :age, :email, :phone, :index)");
    // Выполняем запрос с данными
    $query->execute($data);


    Хотя бы так
    Ответ написан
    6 комментариев
  • Почему выдает ошибку 1442?

    @Akina
    Сетевой и системный админ, SQL-программист.
    CREATE DEFINER=root@localhost
    TRIGGER bi_trigger_in_employees
    BEFORE INSERT ON employees 
    FOR EACH ROW 
    SET NEW.entpr_name = COALESCE( NEW.entpr_name, 
                                   ( SELECT ap_name 
                                     FROM companies 
                                     WHERE id = NEW.entpr_id 
                                     LIMIT 1
                                    )
                                  ),
        NEW.employee_name = COALESCE( NEW.employee_name, 
                                      ( SELECT CONCAT_WS(' ',np_surname,np_name,np_patronymic) 
                                        FROM people 
                                        WHERE id = NEW.employee_id
                                        LIMIT 1
                                       )
                                     );

    1) Суть ошибки - именно та, что написана в сообщении. Нельзя UPDATE таблицы, на которой определён триггер (и другие DML - тоже нельзя).
    2) Изменять вставляемые значения надо до вставки, а не после. Потому BEFORE триггер.
    3) По-хорошему, нужен ещё аналогичный BEFORE UPDATE триггер.
    4) Все SET выполняются в одном операторе (см. https://dev.mysql.com/doc/refman/8.0/en/set-variab...). А триггер из одного оператора обходится и без BEGIN-END, и без DELIMITER.
    5) При скалярном присвоении из подзапроса ВСЕГДА добавляйте LIMIT 1. А по-хорошему ещё и ORDER BY. На показанный код ни то, ни другое не влияет - всё равно одна запись, ибо отбор по PK. Но вдруг структура поменяется, а про триггер забудете? Начнутся ошибки - оно надо?

    тогда да, ошибка на бесконечный цикл. Но тут почему?

    Как это ни странно, но в теле триггера неизвестно, на какое событие определён триггер.
    Ответ написан
    1 комментарий