• Как выбрать определенное количество записей для каждого ID?

    @Vitsliputsli
    WITH news_images AS (
        SELECT news.id news_id, min(images.id) images_id FROM news
            LEFT JOIN images ON news.id=images.id
            GROUP BY news.id
            LIMIT 10
    )
    SELECT news.*,images.* 
        FROM news_images
        JOIN news ON news.id=news_images.news_id
        JOIN images ON images.id=news_images.images_id
    Ответ написан
    Комментировать
  • Как сделать автоматическую сортировку товаров по статусу на складе?

    @Vitsliputsli
    SELECT
            CASE WHEN status="В наличии" THEN 1
                WHEN status="На заказ" THEN 2 
                WHEN status="Нет в наличии" THEN 3
                ELSE null END sort_id,
                *
        FROM table

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

    @Vitsliputsli
    $result_array=[];
    foreach (array_keys($array1) as $key){
          $result_array[$key]=$array2[$key];               
    }
    var_dump($result_array);

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

    @Vitsliputsli
    Warning: Cannot modify header information - headers already sent by (output started at C:\OSPanel\domains\localhost\scripts\create_user.php:1)

    Перевожу: нельзя изменить информацию заголовка (header), т.к. заголовки уже отправлены.
    Как только вы что-то отправили на вывод (даже пробел), заголовки сразу же будут сформированы и отправлены: до отправки заголовков у вас не должно быть ни одного символа вне тегов php.
    Ответ написан
  • Как правильней всего писать сообщения в команде /git comit -m""?

    @Vitsliputsli

    Я не совсем понимаю как правильно написать коммит чтобы понятно было и мне и другим.

    Что-то типа этого:
    "PROJ-237. Добавлено описание продукта на странице 'О товаре'"
    и если позволительно, то лучше на английском. PROJ-237 - номер задачи в вашей любимой системе управления проектами.
    Ответ написан
    Комментировать
  • Как использовать оператор IN внутри SELECT на присоединенных колонках?

    @Vitsliputsli
    По-моему приведенный запрос не будет работать, т.к. нет агрегатных функций возле группируемых параметров. Если не анализировать структуру БД и условия запроса, а только преобразовать его, то будет как-то так:
    WITH check_user as (
    	SELECT :user_id IN (18,104,1,15) check_id FROM dual
    ),
    main_query as (
    	SELECT
    	  kpi.id,
    	  GROUP_CONCAT(users_to_groups.user_id) AS test_1,
    	  SUM(:user_id=users_to_groups.user_id) AS test_3
    	FROM kpi
    	LEFT JOIN kpi_watchers_groups ON kpi_watchers_groups.kpi_id = kpi.id
    	LEFT JOIN users_to_groups ON users_to_groups.data_id = kpi_watchers_groups.group_id
    	GROUP BY kpi.id
    )
    SELECT
    	main_query.*,
    	check_user.check_id test_2
    FROM main_query
    CROSS JOIN check_user
    Ответ написан
    Комментировать
  • Шаблоны проектирования - с чего начать знакомство?

    @Vitsliputsli
    Знаю что есть некие "шаблоны проектирования" - хочу познакомиться на практике - с какого именно начать?

    Ни с какого не нужно, просто прочитайте про них. Скорее всего вы уже использовали часть из них не зная об этом, т.к. это всего лишь удачные решения для типичных задач. Если изучили фреймворк, то в нем найдете много решений соответствующих шаблонам.
    Тут наоборот нужно, брать задачу и продумывая ее решение иметь ввиду что есть шаблоны проектирования.
    Ответ написан
    Комментировать
  • Как составить SQL запрос?

    @Vitsliputsli
    что-то вроде этого:
    WITH ord AS (
        SELECT n_a, count(*) cn FROM photos WHERE id in ({_ids_string}) GROUP BY n_a 
    )
    SELECT id, id_sys, n, photos.n_a, source 
        FROM photos 
        JOIN ord ON photos.n_a=ord.n_a
        WHERE id in ({_ids_string})
        ORDER BY cn DESC
    Ответ написан
    Комментировать
  • Как работать со строкой?

    @Vitsliputsli
    Примерно так:
    $search = array('/(\!)+/', '/(\?)+/', '/(\,)+/', '/(\.){4,}/', '/(\.){2}/');

    оставляет по 1 знаки " ! ? , . ", не трогает три точки. Но лучше сразу опишите все условия.
    Ответ написан
  • В чем ошибка в коде bash?

    @Vitsliputsli
    Кроме лишних fi вместо $$ вероятно имелось ввиду &&
    Ответ написан
    Комментировать
  • Можно ли сделать push всех моих локальных коммитов, но чтобы это выглядело, как один коммит?

    @Vitsliputsli
    git-flow.
    В своей ветке (feature) развлекаетесь как хотите, затем мержите в develop, а уже develop отправляете на сервер. В итоге ваша ветка вообще не попадает в репозиторий, только конечный итог.
    Ответ написан
    Комментировать
  • Почему nmap на двух машинах выдает разный результат?

    @Vitsliputsli
    Время различается из-за того, что часть портов фильтруется. Проверяйте настройки файервола (скорее всего на целевой машине), filtered - означает, что сервер не удосужился прислать ответ, а так делают файерволы, потому как по стандарту ответ присылать обязательно.
    Ответ написан
    Комментировать
  • Структура таблицы бд?

    @Vitsliputsli
    Зависит от того, как будете использовать, я так понимаю это одна и та же сущность (проект не может находиться одновременно в 2 статусах) - значит храните в одном поле. Если речь о том, в каком варианте съэкономите место, то не стоит этим заморачиваться, усложнение кода в угоду сомнительной оптимизации плохая практика. Какой выигрыш будет на 10млн базе? 10Мб? 20Мб? - это несерьезно. Зато как усложнится работа с такими данными и их обработка - потеряете больше, чем приобретете.
    Ответ написан
    Комментировать
  • Как отключить шифрование в SSH?

    @Vitsliputsli
    Проверить какое шифрование поддерживается можно так: ssh -Q cipher.
    Если "none" нет, то перекомпилируйте ssh с поддержкой.
    Все-таки первая S в ssh - это безопасность, поэтому как правило собирают без "none".
    Ответ написан
    Комментировать
  • Как автоматизировать работу с БД?

    @Vitsliputsli
    В принципе уже описали, как действовать для реализации проекта.
    Что касается:
    До этого предпринимались попытки автоматизации:
    1) Создалась некая программа, которая выглядит как БД, написана на sql и Oracle(есть на диске, но не знаю как её открыть).
    2) ИС работающая в браузере, с возможностью авторизации.

    На sql программы не пишутся, но учитывая п.2 и слово "Oracle" вероятно использовался APEX. Но несмотря на то, что APEX предназначен для создания проектов непрограммистами, по-факту придется искать разработчика APEX, а их не так много, да и скорее всего неоправданно дорого будет.
    Ответ написан
    Комментировать
  • Почему нужны конструкторы и деструкторы, чем различаются от функции?

    @Vitsliputsli
    Если под функцией здесь понимается метод класса, то методы вы должны вызывать сами. А констрокторы и деструкторы - это "магические" методы, те которые вызываются автоматически при наступлении определенного события. Лучше прочитайте документацию, там лучше всего написано.
    Ответ написан
    Комментировать
  • Почему yii2 не работает с php версией 5.4 хотя в требованиях стоит от 5.4?

    @Vitsliputsli
    Не важно зависимость yii это или нет. Yii2 может работать с 5.4 поэтому в composer.json указано "require": "php": ">=5.4.0". Для myclabs/deep-copy требуется php 7.2 поэтому в нем указано "require": "php": "^7.2". Очевидно, что при установке yii2 и компонента myclabs/deep-copy, разрешив зависимости, тот же composer забракует 5.4, т.к. хотя для yii2 этого достаточно, но уже недостаточно для myclabs/deep-copy.
    Нужно обновлять php, потому что даже если и решите эту проблему, завтра возникнет подобная с другим компонентом.
    Ответ написан
    Комментировать
  • Куда пойти учиться на программиста, имея непрофильное высшее образование?

    @Vitsliputsli
    "Ведь есть место, где пересекаются медицинские знания и IT, ну хочется верить, что есть такие места или будут."
    IT сейчас везде, поэтому, конечно, есть. Найдите подходящее направление и уже изучайте конкретные инструменты.
    Мало кого интересует образование (разве что некоторых наличие высшего технического), главное реальный опыт и навыки.
    Ответ написан
    2 комментария
  • Аналог дифференцированных виртуальных дисков в Linux?

    @Vitsliputsli
    Если я правильно понял, есть базовый неизменный образ который используют все машины, а изменения характерные для каждой машины хранятся отдельно? Если так, то почитайте про AUFS и UnionFS, эти файловые системы давно появились, так что может уже и еще чтото новое есть.
    Ответ написан
    Комментировать
  • Как в phpstorm сделать кнопку push на панель инструментов?

    @Vitsliputsli
    Либо при формировани коммита можно выбрать не commit, а commit and push
    Ответ написан