• Как осуществить поиск (like) по полю в массиве в json колонке?

    @alexalexes
    Сделать нормализацию структуры базы.
    Перенести JSON в таблицу user_phone.
    Поля:
    phone_id, -- первичный ключ телефона
    user_id, -- внешний ключ, кому относится телефон
    phone, -- телефон
    phone_comment, -- комментарий к телефону
    -- еще поля по вкусу, но иногда выручающие
    is_main, -- основной не основной/порядок приоритета
    add_date -- дата внесения телефона
    И в запросах уже нормально джойнить и лайкать эту таблицу.
    PS:
    В качестве временного костыля (ни в коем случае не оставлять на постоянной основе!):
    SELECT Users.*,
           ph.value->>'phone' as phone
    FROM Users, json_array_elements(Users.phones) as ph
    where ph.value->>'phone'   like '7%3';
    Ответ написан
    3 комментария
  • Как организовать SMB c разными МФУ?

    @Drno
    Печать по внешнему IP? Чет не выглядит безопасно. Впн организуйте. И подцепите общее хранилище туда тоже
    Ответ написан
    2 комментария
  • Пожалуйста оцените стоимость доработки расширения для google chrome?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Обратиться на сайт фриланса. Там дадут оценку.

    Просить оценку у человека, который не будет заниматься разработкой, нет смысла.
    Ответ написан
    Комментировать
  • Как доказать, что a³+b³+c³=3?

    @0x0f80
    Точного метода без перебора нет
    Ответ написан
    Комментировать
  • По какому принципу работает набор индексов в одной таблице?

    @Everything_is_bad
    Если я правильно понял, когда мы создаем индекс, у нас таблица изменяет порядок записей внутри себя сортируя их по указанным столбцам
    нет, никакой порядок не меняется, индекс это отдельные от таблицы данные

    И один индекс
    равен тому, если бы мы создали три индекса в такой последовательности
    нет, перестань уже придумывать и начни читать учебники и документацию

    Которые бы по очереди друг за другом добавляли правило сортировки в таблице, верно?
    опять ты что себе напридумал, нет никаких правил сортировки в таблице, индексы просто могут использоваться для ускорения сортировки

    Причем при изменении name обновление будет происходить дольше, чем при изменении price, потому что у нас price последняя в нашей очереди индексов по сортировке?
    когда фантазию уже не остановить
    Ответ написан
    4 комментария
  • Может ли приложение слушать несколько портов?

    @Everything_is_bad
    Не понятно какая связь между ядрами и портами? компьютер с один ядром может слушать N портов, компьютер с N ядрами так же может слушать N портов. Эффективность вообще тут боком, а для ее измерения минимум нужно установить критерий по которому ее фиксируем.
    ЗЫ взять тот же event loop в питоновском asyncio (на самом деле в остальных языках тоже дофига подобного), он без проблем может держать и обрабатывать 10к коннектов на одному порту, на одном процессе (считай ядре), но если кривыми руками там вызвать тяжелый синхронный код, то всё.
    Ответ написан
    9 комментариев
  • Зачем в toString и substring передаются аргументы?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    3 комментария
  • Как создать скрытый input для передачи технической информации на другую страницу?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Какие могут быть варианты решения проблемы?

    Не выдумывать на ровном месте проблемы. Всё на стороне клиента можно отредактировать и подменить.
    Ответ написан
    2 комментария
  • Как создать скрытый input для передачи технической информации на другую страницу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тип hidden не подходит, потому что его можно редактировать? А что из html вы вообще можете НЕ редактировать?

    Вам тут стоит понять одну очень важную штуку: html/css/js образуют client side. Вы должны понимать, почему это называется вообще "Клиентом"? Потому что эта вся информация полностью загружается на клиента и он имеет к ней доступ.

    По этому существует server side - часть программной системы, к какой конечный пользователь не имеет доступа, в отличии от клиентской части.

    Цель сервера - обрабатывать запросы с клиента. Первое, что делает сервер с данными, которые ему отправил клиент - ВАЛИДИРУЕТ. Соответственно, если данные не валидны - запрос разворачивается обратно на клиента и отдаёт ему какую-то ошибку

    Это всё так, к слову. Вам важно понять, что клиент может редактироваться, вы никак не сможете этого избежать. Но этого не стоит бояться, т.к. то, за что вы переживаете должно обрабатываться на сервере.

    Client side должен обрабатывать данные перед отправкой на сервер (Но сервер обязан их повторно валидовать) и после получения данных от сервера для наилучшего представления ИХ конечному пользователю

    UPD: для справки. Вы можете полностью редактировать html в режиме реального времени, но он не будет сохранён для всех пользователей, а только для вас, т.к. эта часть загружается только два вас как для конечного пользователя. Сам html хранится на сервере и является результатом работы сервера. Эту часть html, что вы видите в браузере вы можете редактировать.

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

    Проблема в том, что даже после элементарной перезагрузки страницы (Через Ctrl + R или другими способами) это всё будет утеряно и вам загрузится тот самый html/css/js, который является результатом рабыты сервера того сайта, который вы просматриваете
    Ответ написан
    1 комментарий
  • Астериск, как звонить с нужного транка?

    @dronmaxman
    VoIP Administrator
    exten => _0[1-3]XXX,1,Noop(---- call to AST A1 ----)
     same => n,Set(CALLEID(num)=02${CALLRID(num)}) ;; Подменяем номер звонящего, что бы работал обратный звонок
     same => n,Dial(SIP/trunkA1/${EXTEN:3},15,Tt)
     same => n,HangUp() ;; Обрываем звонок по окончании или если произошла ошибка что бы не звонить в пожарную службу
    Ответ написан
    4 комментария
  • Как не показывать пустые массивы?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) сделайте нормальные имена полям, что за rid, rname, ryavka, тут с большой буквы, там с маленькой... кроме того что половина полей транслитерацией кривой, так еще и префикс зачем то присобачили... С переменными та же фигня.
    2) База должна соответствовать 3 нормальной форме, соответственно 2 значения в поле вашей рявки быть не должно, это должны быть 2 отдельных поля (или вообще внешняя таблица, если там много значений предполагается).
    3) Соответственно в запросе нужно будет дать дополнительное условие по наличию второго поля, тогда ответ будет такой как надо.
    4) В вашем случае предполагаю что ответ вообще не приходит, или приходит пустой, так как при запросе из пустого результата в первой же итерации цикла все упадет как раз с описанной ошибкой.
    Ответ написан
    5 комментариев
  • Как выбрать строку по определенному числу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище, data quality у тебя ужасное. Такие данные не должны попадать в реляционную БД.
    Лучше их как-то подчистить и нормализовать. И потом и запрос по подчищенным данным пойдет
    быстрее и индекс можно построить.
    Ответ написан
    Комментировать
  • Как диагностировать диски M.2?

    vabka
    @vabka
    Токсичный шарпист
    Смотри на "Data units written" и сравнивай с заявленным показателем TBW.
    Я бы на 50% TBW уже покупал запасной, а на 80% перегонял бы данные со старого на новый.
    Ещё можно посмотреть на "Available Spare" - когда их становится мало, тоже уже следует хорошо задуматься о замене.
    Ответ написан
    Комментировать
  • Python, что правильнее использовать, запуск бота на прямую или крон?

    @q2digger
    никого не трогаю, починяю примус
    правильнее сервис systemd нарисовать
    Ответ написан
    1 комментарий
  • Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'ID' at row 1. Как решить ошибку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Читаем текст ошибки
    2) В меру способностей переводим, в случае клинического английского пользуемся онлайн переводчиками.
    3) Сравниваем текст ошибки с реальной ситуацией в коде, находим 10 отличий от желаемого
    4) Чиним
    5) Профит, пиво, радость, дофамин...
    Подходит для всех ошибок, не только для этой конкретной...

    Так же рекомендуется:
    Проверять данные перед вставкой/апдейтом, например тупо проверив что пришло в $_GET/$_POST
    Использовать подготовленные выражения, так как сейчас у вас там дыра в безопасности (ну хоть что-то в безопасности)) )
    По возможности изучить стандарты нейминга и PSR в целом.

    ЗЫ: делать препэйр и при этом вставлять данные прям строкой - особый вид искусства...
    ЗЫ2:
    1) Видна попытка сделать нормальные подготовленные выражения, но так как учились плохо, то и получилось плохо... В цикле надо задать не значения из массива, а плейсхолдеры, после чего передать соответствующий массив.
    2) mb_strlen($Name, 'utf8') - кодировка называется UTF-8.
    Ответ написан
    Комментировать
  • Как это решать?

    Vindicar
    @Vindicar
    RTFM!
    1. Подумать.
    2. Написать код.

    А если серьёзно, задача сводится к разложению числа на заданные слагаемые. Это гуглится.
    Один из способов (необязательно самый быстрый) - рекурсивное разложение. Упрощенно, перебираешь все Ai меньшие N. Выкидываешь это Ai из рассматриваемого набора, и затем рекурсивно пытаешься составить число (N - Ai) из всех Aj, меньших или равных Ai (так как большие слагаемые ты уже рассмотрел).
    Углубляясь в рекурсию, рано или поздно ты наткнёшься на одну из двух ситуаций:
    а) среди Aj есть число, равное искомому. Решение найдено, осталось размотать рекурсию обратно и собрать в кучку использованные Ai.
    б) нет ни одного Aj, меньшего или равного искомому числу. Решения нет.
    В твоём случае будет ещё случай в) Сумма всех Ai меньше N. Решения нет, заплатить не удастся. Это можно проверить вообще сразу.

    Реализовать будет проще, если отсортируешь Ai в порядке убывания. Тогда вместо удаления Ai из списка слагаемых достаточно будет выбрать индекс i, с которого будешь начинать рассмотрение слагаемых - все элементы до i-го либо слишком велики, либо уже были рассмотрены и не пригодились.
    Ответ написан
    3 комментария
  • Что значит второй PK в модели БД?

    vabka
    @vabka
    Токсичный шарпист
    Либо ограничение, либо индекс - собственно это и есть сам первичный ключ.

    А то что около колонок - это просто подсказка о том, что эта колонка является PK.
    Ответ написан
    Комментировать
  • Как реализовать чексуммы для сетевого протокола уровня приложения?

    vabka
    @vabka
    Токсичный шарпист
    При использовании TCP стека (Ethernet, IP, TCP) не гарантируется сохранение целостности.

    Гарантируется.
    Ответ написан
    7 комментариев
  • Как создать программу с готовыми шаблонами для формирования отчётов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    1. Выбираем язык программирования
    2. Изучаем его
    3. Создаем базу с данными и учимся заполнять и извлекать данные из базы
    4. Пишем программу, которая умеет извлекать данные и выводить отчет
    5. Создаем шаблоны для титульной страницы и остальных страниц, интегрируем в программу

    Ну и все в таком духе.
    Ответ написан
    2 комментария
  • Существует ли способ сохранить OEM лицензию Windows 10 при существенном апгрейде компа?

    @nApoBo3
    Тут два момента, технический и юридический.
    Юридически никак, за исключением возможно хитрого трюка с модернизацией через производителя компьютера.
    Технически, если это не брендовый ПК, то скорее всего активация придет без проблем.
    Ответ написан
    1 комментарий