• Может ли кто-то объяснить SQL запрос?

    x - это алиас для подзапроса, так понятнее будет:
    SELECT maker, type
    FROM Product 
    WHERE maker IN (
            SELECT maker  
            FROM (
                    SELECT maker, type
                    FROM Product GROUP BY maker, type
                ) x
            GROUP BY maker HAVING count(*)=1
        )  
    GROUP BY maker, type HAVING count(*)>1
    Ответ написан
    Комментировать
  • Как скрыть отображение счетчиков?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Просто удалите, зачем они вам? Сейчас аналитика подсчитывается более продвинутыми системами, а именно: яндекс.метрика и гугл аналитикс
    Ответ написан
    5 комментариев
  • Как составить регулярное выражение PHP?

    preg_match_all('/:(\d+)/', ':475440 :472710 :2730', $matches);
    print_r($matches[1]);
    Ответ написан
    Комментировать
  • Адаптивная вёрстка таблицы. Какие ошибки допущены?

    teotlu
    @teotlu
    Навёрстываю упущенное
    Поизменял ширину туда-сюда и нашёл косячок.
    Ответ написан
    1 комментарий
  • Как определить список глав для курсовой на тему разрешительная система доступа и ее значение в системе защиты информации?

    faserschreiber
    @faserschreiber
    Android, немножко Flutter
    В конкретном Положении об РСД в конкретной организации не должно быть ничего абстрактного. Оно должно быть максимально привязано к особенностям сети (есть ли домен, какие используются средства защиты и назначения прав, формы заявок на получение доступа, действия админа и админа ИБ при исполнении таких заявок и т.д.). Поищите готовые документы по запросу "положение о разрешительной системе доступа к информации" и отталкивайтесь от них. Они более ли менее типовые, может даже есть что-то типовое от ФСТЭК/ФСБ (хотя оно, скорее всего "дсп"). Ссылки в посте 27cm посмотрите, Емельянников вообще полезен.

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

    Требования к системе защиты берутся из СТР-К, приказов ФСТЭК 17, 21, 31 и т.д. (там много чего).
    Ответ написан
    Комментировать
  • PHP и UTF-8 всё таки жизнь возможна или нет?

    @hurgadan
    А вы mbstring ипользуете? По всей видимости нет. Изначально функции обработки строк в PHP не умеют работать с многобайтными кодировками, UTF8 например. В строке
    $str = "Привет, Алексей, как твои дела"; каждый символ представлен двумя байтами, если ваш скрипт в UTF8, и если не установлен mbstring/не включена перегрузка строковых функций, то вы получите то что указали выше.
    Установите mbstring, включите перегрузку строковых функций или же используете сразу перегруженные функции
    php.net/manual/ru/mbstring.overload.php
    Ответ написан
    Комментировать
  • PHP и UTF-8 всё таки жизнь возможна или нет?

    @IceJOKER
    Web/Android developer
    Мне кажется или в комментариях есть решения для данной проблемы?
    php.net/manual/ru/function.str-split.php
    Ответ написан
    3 комментария
  • Как правильно администрировать VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ни в коем случае не ставить никаких ISP Manager / Vesta / CPanel, иначе никогда не научитесь тому, чему хотите научиться. Кроме того, они жрут ресурсы. Даже Vesta, которая самая легкая, их жрет прилично, а я сильно сомневаюсь, что у вас VPS c 8+ Gb памяти.

    Изучать надо по урокам и статьям, читая мануалы и best practices по каждому package. Порядок, плюс-минус, таков:

    - развернули ось
    - сделали сразу апдейты
    - создали и настроили swap
    - поменяли пароль рута на что-нибудь супер-мега-сложное (его мы использовать все равно не будем)
    - создали себе обычного юзера с паролем нормальной сложности (он будет использоваться для sudo)
    - дали юзеру права sudo
    - закрутили гайки по SSH - сменили порт, запретили вход руту и вход по паролю (только по ssh-ключам), разрешили вход только одному своему новому логину
    - настроили UFW - простой, но эффективный firewall на основе iptables - default deny, allow http, https, свой кастомный ssh-порт. Если логиниться будете только из нескольких мест (офис, дом) - можно вообще ssh разрешить только на эти IP.
    - sudo dpkg-reconfigure tzdata чтобы установить свою временную зону, так логи потом легче читать и понимать
    - настроили logrotate
    - настроили logwatch
    - настроили Postfix, чтобы сервер вам письма мог слать (мы его настраиваем на внешний мейлер, например Mandrill, чтобы все письма точно в спам не падали)
    - настроили fail2ban (потом, после установки и настройки веб-сервера и сайтов, в fail2ban можно дополнения писать, например мы на WordPress-сайтах мониторим попытки авторизации в админку и блочим тем же fail2ban)
    - дальше ставим все что нужно - Git, Nginx, HHVM, PHP5-FPM, MariaDB, Memcached/Redis и так далее.

    Регулярно заходите на сервер, делайте apt-get update && apt-get dist-upgrade.

    p.s.: это по ubuntu/debian, для других систем все то же самое, но packages и команды могут немного отличаться
    Ответ написан
    26 комментариев
  • Как реализовать папки и подпапки на php?

    breefix
    @breefix
    Технолог
    Есть разные варианты хранения древовидных структур со своими плюсами и минусами, можете посмотреть презентацию: www.slideshare.net/billkarwin/models-for-hierarchi....
    Ответ написан
    1 комментарий
  • В каких CSS правилах используется цвет?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Комментировать
  • Каким образом рассчитывается функция фибоначчи?

    vanya_beseda
    @vanya_beseda
    Front End
    Комментировать
  • Работа без высшего образования, это реально?

    YuriMolotov
    @YuriMolotov
    Дизайн и вёрстка сайтов — Molotov.pro
    Государственным учреждениям нужны дипломы, частникам нужны деньги, которые ты им заработаешь.

    Так что не стоит питать иллюзий насчёт диплома.
    Если ты хороший специалист, диплом никто спрашивать не будет. Но без навыков в сфере ит делать нечего. И дипломы не спасут.

    В 17 лет рассчитывать на серьёзный оклад не стоит, но подработку вполне можно найти.
    С другой стороны в 17 лет все считают себя крутыми спкциалистами, а html - языком программирования :)
    Ответ написан
    6 комментариев
  • Дефицит специалистов - так всё-таки это правда или миф?

    Denormalization
    @Denormalization
    Найти разработчика не проблема. Проблема найти ТОЛКОВОГО разработчика.
    Во фрилансе 90% мусор, который за месяц изучил как верстать\делать сайты на WP. Даже компании, которые занимаются фрилансом, по большей части мусор.

    Тот факт, что отзывы на проекты пишут в большом кол-ве - говорит только о том, что много людей пытаются заработать во фрилансе. На самом деле 99% резуюме\заявок сразу уходит в корзину.

    ЗЫ.
    Пишу из собственного опыта и опыта знакомых в поиске работников для временной\постоянной работы.
    Ответ написан
    2 комментария
  • Как добавить товар в корзину?

    @carbon88
    .NET developer/ORM developer
    Согласен со Станиславом, база данных спроектированна из рук вон плохо, учитесь делать так как нужно и слушайте что вам опытные товарищи говорят - больше нервных клеток сбережете.

    Упрямство это хорошо, но когда более опытный человек говорит вам это не правильно спроектированно, то стоит прислушиваться и не набивать кучу шишек на простых вещах.

    Есть несколько Нормальных форм для баз данных. Каждая из них убирает некую избыточность. Минимум база должна соответствовать 3-ей нормальной форме, почитайте про 1НФ, 2НФ, 3НФ и 3,5НФ (или нормальная форма Бойса-Кодда или НФБК). Иногда проводят денормализацию, но для этого нужно понимать для чего и в каких случаях это делается.

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

    Далее, нужен нам заказ, делаем таблицу Заказ с полями кто заказал, когда заказал, иные примечания и поля, но не что заказал. Табличная часть заказа должна быть в отдельной таблице, где есть ссылка на товар (одну таблицу а не как у вас сейчас), количество, иные поля, и ссылка на заказ к которому та или иная позиция относится.

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

    Свойства товаров, как сказали, можно хранить в json или в xml, но это не удобно для фильтров каких-нибудь да и добавлять/редактировать значения свойств как-то не удобно - загрузи, десериализуй, измени/добавь, сериализуй и сохрани. Если они никогда не меняются и по ним нет поиска, то я бы сохранил как сериализованный в json или xml объект. Иначе тоже через таблицы, связанные с товаром связью. тут можно накрутить много, и группы свойств для каждой категории и всякое другое.
    Ответ написан
    Комментировать
  • PHPCI: Кто работал? Ответите на пару вопросов?

    @maxyc_webber Автор вопроса
    Web-программист
    1. копирует с нуля, потому что для тестов нужно чистую систему всегда. если делать сборку раз в день/неделю/месяц , то все ок, не накладно будет
    2. в процессе изучения )
    3. пока сделал лишь проверку качества кода. автотесты еще изучаю
    build_settings:
      ignore:
        - "vendor"
        - "tests"
        - "requirements.php"
        - "web"
        - ".idea"
        - "migrations"
    setup:
      shell:
        - "export PATH=$PATH:$HOME/.composer/vendor/bin:/usr/local/bin/"
        #- "/usr/local/bin/composer install"
    test:
      technical_debt:
      php_mess_detector:
      php_code_sniffer:
        encoding : 'UTF-8'
      php_loc:
      php_docblock_checker:


    компзер через шелл использую потому что в path не видит его

    описание тестов есть на сайте PHPCI
    Ответ написан
    Комментировать
  • Как правильно составить SQL запрос для MySQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    select id_item from tablename where (prop = 'naz2' and val = 2) or (prop = 'naz1' and val = 1)
    group by id_item
    having count(0)=2

    Для корректной работы требуется уникальный индекс по сочетанию полей prop и val

    Или другой вариант:
    select id_item from tablename t1
    join tablename t2 using(id_item)
    where (t2.prop = 'naz2' and t2.val = 2) and (t1.prop = 'naz1' and t1.val = 1)
    Ответ написан
    1 комментарий
  • Чего не хватает сервису?

    mitaichik
    @mitaichik
    Я не разбирался особо что это такое, но на счет сайта вот что скажу:
    1. Не работает кнопка подключиться
    2. Единственное что видит посетитель при заходе на сайт - РАБОТАЙ В РЕАЛЬНОМ ВРЕМЕНИ. Программистам (я так понимаю это ваша целевая аудитория) это ничего не говорит. Может стоит сразу написать что это за библиотека, и для чего она?
    3. Начинаю искать инфу что же это за проект, что он делает - кручу в низ. И первое что вижу - Наша миссиая - помочь детям. Это, безусловно, прекрасно и достойно уважения. Но! Я задумался - а туда ли я попал (искал через гугл)? Какие еще дети?
    4. Идем дальше - последние новости. Я понимаю что это все-таки какой-то IT проект, но что он делает - до сих пор не понятно.
    5. Далее - наконец-то описание что же это за проект. Под странным заголовком "О нас". Заголовок ассоциируется с компанией/командой, но не с тем, что же это такое. Плюс фон у этой секции, на котором трудно что-то прочесть, все сливается, лично мне пришлось поднапрячься.

    Я не спец конечно по UI, но это то что бросилось в глаза.
    Ответ написан
    4 комментария
  • Почему может не работать функция set-time-limit?

    DevMan
    @DevMan
    На никсах sleep и некоторые другие операции не учитываются в учете времени.

    Не работает:
    <?php
    set_time_limit(5);
    sleep(100);
    echo "Ok!";


    Работает:
    <?php
    set_time_limit( 5 );
    for(;;);
    exit;


    К тому же set_time_limit(Х) означает не лимит Х, а дефолтный лимит + Х.
    Ответ написан
    6 комментариев
  • Как разумно составить следующий запрос mysql?

    @KIN1991
    Python, PHP developer
    GROUP BY по title, но это не очень хорошая практика делать групировку по текстовым полям
    Ответ написан
    1 комментарий