• Как сделать такую форму для приема платежей?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это маркер говнокода.
    Если видишь этот символ - значит код писал либо дурак, либо нуб, который не понимает, что такое сообщения об ошибках, и для чего они нужны.
    Раньше были ситуации, когда этот оператор был оправдан, но сейчас нет ни одной причины его использовать, кроме невежества.
    Ответ написан
    4 комментария
  • Как вызывать метод без параметров, а сам метод сделать с параметрами?

    @rPman
    после 5.6 версии php можно использовать variadic functions
    function test(...$params){var_dump($params);}
    test(1,2,3);

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

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Уберите запятую после datetime INTEGER
    Ответ написан
    4 комментария
  • Что означает Request перед свойством?

    DevMan
    @DevMan
    Ответ написан
    Комментировать
  • 300 веб сокетов?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Если операции вычисления блокирующие и блокирует они поток надолго, то стоит вынести их в воркеры, само количество воркеров лучше выбрать по количеству логических ядер (хардварных потоков), а распределять задачи можно простым round robin алгоритмом, если сами задачи примерно одинаковые.
    А насчет сокетов, 300 постоянных коннектов на 1 процесс/поток для ноды сущий пустяк, она спокойно переварит несколько десятков тысяч, если поток не блокировать дольше нескольких десятков операций
    Ответ написан
    2 комментария
  • Как настроить сервер и код на многочисленные одновременные запросы?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Чтобы не углубляться и не расписывать свою задачу со всеми деталями которые не имеют отношения к вопросу,
    Лучше бы вы задачу расписали, из вашего решения ни цель, ни проблема не видны. Вообще вопрос скорее всего возник из непонимания процесса работы в целом, что можно было бы решить 2 словами.

    Как реализовать так, чтобы пользователь не получал ошибку, а просто ждал ответа от сервера.
    Какой ответ? Нужно посчитать и отдать результат или достаточно чтобы ответ был "все ок"?

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

    Можно ли на сервере с такими данными реализовать эту задачу чтобы сервер и СУБД не отваливались?
    Вообще не вижу проблем, Даже если 100 человек одновременно кликнет - особой беды не будет. Во первых, на каждого будет выделен отдельный трит пхп, во вторых - такие мелкие записи вообще ниачем, мускуль их может херачить сотнями в секунду.

    В целом: Решение с транзакциями вообще спорное, и не понятно зачем здесь воткнуто (интересно ваше решение - откудо оно и зачем? И в догонку - почему они так редко используются, а в вашем случае "очень нужны"?).

    Как можно это синтетически протестировать?
    apache jmeter или yandex tank.

    Вывод
    Скорее всего переживания ваши ниачем, но если вы по секрету расскажете нам что за уникальную вундервафлю вы строите, возможно ответ будет точнее и осмысленнее.
    Ответ написан
    3 комментария
  • Где кириллица в коде?

    zorca
    @zorca
    Очевидно, что у Вас в Контроллере лежит часть Вьюхи, включая надписи на кириллице. Это неправильно. Контроллер не занимается отображением данных и должен возвращать только данные в самом простом виде: массив или объект.
    Ответ написан
    3 комментария
  • Как правильно прикрепить вложенный файл?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Три простых шага для решения данной проблемы:

    1. Посмотреть на календарь и уточнить, какой сейчас век на дворе.
    2. Аккуратно выделить этот код, и нажать клавишу Del
    3. Скачать phpmailer
    4. Забыть все эти кустарные ковыряния как страшный сон.

    В итоге код должен получиться примерно таким:

    require 'PHPMailerAutoload.php';
        $mail = new PHPMailer;
        $mail->setFrom('from@example.com', 'First Last');
        $mail->addAddress('whoto@example.com', 'John Doe');
        $mail->Subject = 'PHPMailer file sender';
        $mail->msgHTML("My message body");
            // Attach uploaded files
        $mail->addAttachment($filename1);
        $mail->addAttachment($filename2);
        $mail->send();

    следует понимать, что отправка почты - это не просто копирование в свой скрипт каких-то определенных сочетаний символов, которые случайно сработали в прошлом веке у автора какой-либо допотопной статьи. Это гораздо более сложный процесс, который включает множество нюансов. И поэтому отправку почты надо не лепить вручную на ходу из навоза и палок, а доверить проверенному и отлаженному решению.
    Ответ написан
    1 комментарий
  • Архитектура связей между таблицами в БД?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    events:
      id (PK)
      ....
    
    users:
      id (PK)
      ...
    
    event_users
      event_id (PK, FK to events)
      user_id (PK, FK to users)
    
    feedbacks:
      id (PK)
      event_id (FK to events)
      user_id_from (FK to users)
      user_id_to (FK to users)
      
      idx_unique (event_id, user_id_from, user_id_to) - уникальный индекс


    В event_users каждый пользователь на каждое событие может быть записан только 1 раз (т.к. оба поля входят в PK)
    В feedbacks на уровне приложения позволяете добавлять только те записи, где и user_id_from и user_id_to присутствуют в event_users к данному event.
    Ответ написан
    Комментировать
  • Как вывести наиболее повторяющееся значение в таблице при группировке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для MySQL 8
    SELECT DISTINCT `age`, FIRST_VALUE(`hobbies`) OVER `win` AS `hobbies`
      FROM (
        SELECT `age`, `hobbies`, COUNT(*) AS `count`
          FROM `test`
          GROUP BY `age`, `hobbies`
      ) AS `t`
      WINDOW `win` AS (
        PARTITION BY `age`
        ORDER BY `count` DESC
      )
    Ответ написан
    Комментировать
  • Какой тип данных выбрать в бд?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Не надо спорить, для ФИНАНСОВЫХ операций только дечимал. Если вы не в курсе или не занимались этим - не надо давать плохих советов. В некоторых бд есть специальный вид MONEY, но он не всегда подходит, так как имеет обычно ограниченное количество знаков после запятой, как в данном случае, биткоин или операции с большим "хвостом" как на форексе.

    UPD: Надеюсь никому не надо объяснять почему флоат не подходит?
    Ответ написан
    Комментировать
  • Повышение и понижение стоимости акций как описать правильно математически?

    vabka
    @vabka
    Токсичный шарпист
    Мне кажется, тут скорее непонимание того, как работают биржи.
    1. Алиса покупает у Боба 10 акций по 100$. 1% идёт комиссия брокеру.
    Таким образом у Боба появляется 1000$, а у брокера 10$. Алиса теряет 1010$
    2. Через какое-то время акции дорожают и поднимаются в цене до 110$
    (в данном случае мы понимает это, что еть покупатель, готовый столько заплатить)
    Вадим покупает у Алисы её 10 акций по 110$. Алиса получает 1100$, брокер получает ещё 11$ комиссии.

    Таким образом что мы имеем:
    У Алисы 1100$. У неё прибыль 90$
    У Боба 1000$
    У Вадима 10 акций
    С этих двух сделок брокер наварился на 21$

    Термин "заработал из пустоты" неверен, тк цены не вырастают автоматически от того, что ты купил акции.
    Алиса могла бы быть в убытке, если бы в этом случае комиссия брокера была бы выше. Ну или если бы комиссия взималась по какому-нибудь другому принципу.
    Ответ написан
    Комментировать
  • SMS уведомления когда какие то сервисе падают (мониторинг)?

    monit-it.ru
    бесплатный тариф подойдет.
    Если прям платный то 500 р
    там и смс и почта и очереди и даже действия на сервере и все это в сервисе без громоздких zabbix
    для старта само то
    Ответ написан
    1 комментарий
  • Как проверить наличие значений в таблицах?

    @rPman
    большинство sql баз данных позволяют использовать результат работы select в качестве таблицы во from (либо определять такие вьююхами).

    про добавление суток, оператор LEFT JOIN позволяет объединить таблицы во from таким образом что записи левой таблицы будут в результате обязательно, когда как записи от правой только при совпадении условия в ON (аналогично есть RIGHT JOIN, только подсчет будет для правой таблицы)

    соответственно проверяешь нужное поле на null делаешь плюс один

    про рекурсивные добавления не понял
    Ответ написан
    3 комментария
  • Почему возвращается пустой объект?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что смешиваете синхронный и асинхронный код, вероятнее всего.
    Если асинхронные функции дёргать из синхронных, то получите не их результат, а промис.
    Ответ написан
    Комментировать
  • Почему выходит данная ошибка при sql-запросе?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что вы выполняете арифметическую операцию сложения с текстовыми значениями.
    Для конкатенации текстовых строк есть функция CONCAT().
    Ответ написан
    1 комментарий
  • Ошибка PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'url1' in 'OLD' in?

    Melkij
    @Melkij
    PostgreSQL DBA
    Триггер на таблице, наверняка.
    Проверьте какие триггеры есть на таблице и не надо ли их тоже поправить после удаления url1
    Ответ написан
    Комментировать
  • Если в БД есть запись "строка" - вставить запись "строка-1", если есть "строка-1" - вставить "строка-2"?

    Fernus
    @Fernus
    Техник - Механик :)
    Я бы немного изменил структуру, добавив одно дополнительное поле и уникальный индекс на поле name...
    Короче...

    Таблица:
    CREATE TABLE `test` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL,
      `count` int(11) NOT NULL DEFAULT 0,
      PRIMARY KEY (`id`),
      UNIQUE KEY `name` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    При вставке записей использовал бы такой запрос:
    INSERT INTO `test` (`name`) VALUES ('строка') 
    ON DUPLICATE KEY 
    UPDATE `count` = `count` + 1;


    Что в итоге?

    - В итоге не будет лишних объёмов данных в БД...
    - Всего один запрос на вставку;
    - В поле count будет число - сколько раз была занесена данная строка в БД...

    UPDATE:

    Исходя из комментариев и подробностей автора дополняю ответ...

    Можно например использовать Redis (increment)...
    Где ключ будет "строка" (в данном случае kot например).
    Перед записью ныряем в Redis, подкручиваем "счётчик" и далее берем это значение и записываем в MySQL в поле slug:

    kot-ЗНАЧНИЕ_СЧЁТЧИКА

    В итоге один запрос в Redis и один INSERT в MySQL...

    Понятна мысля?)

    P.S.: Redis можно и на MySQL тож заменить...используя мой первый вариант в ответе в качестве счётчика вместо Redis'а...но тут на пару запросов больше выйдет...что и не критично в данном случае думаю...
    Ответ написан
    4 комментария
  • Postgresql или mariadb для больших таблиц?

    Fernus
    @Fernus
    Техник - Механик :)
    Вот тут по полкам всё...
    https://developer.okta.com/blog/2019/07/19/mysql-v...

    MySQL я бы выбрал скорее всего...раз записей/обновлений мало и по крону...

    Из статьи:
    Postgres создан с учетом расширяемости, соответствия стандартам, масштабируемости и целостности данных - иногда в ущерб скорости. Поэтому для простых рабочих процессов с большим количеством операций чтения Postgres может оказаться худшим выбором, чем MySQL.
    Ответ написан
    Комментировать