Задать вопрос
  • А где люди ищут разработчиков для создания более-менее крупных веб сервисов?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Где они в таком случае будут искать разрабов?
    Если себе - HH и подобные ресурсы а-ля мойкруг, фирмы по поиску персонала, свои хантеры, знакомых дернут... много короче где.
    Если аутсорс - то в гугле скорее всего, тупо посмотрят топ 10 фирм с первой странички, кто понравится из переговоров того и возьмут, но обычно на такие крупные проекты не ищут аутсорс, проект то еще и поддерживать нужно, сразу набирают ИТ отдел. Опять же, все зависит...
    Ответ написан
    Комментировать
  • Как посчитать уникальных пользователей?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    если есть авторизация - вообще влегкую, если нет - хранить айпи с которого заходит пользователь, это конечно не будет точной метрикой, но +- даст понять сколько примерно уников.
    Ответ написан
    1 комментарий
  • Как сверстать макет из файла PDF?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Хм, вроде все современные версии фотопопа понимают пдф, в крайнем случае его можно открыть иллюстратором и получить все объекты как векторы и битмапы/маски, если в фш не открылось со слоями, хотя макет в пдф конечно не верх гениальности. Я бы поинтересовался чем вызван выбор этого формата в качестве основы, если ответ не в рамках адекватности, то и смысла колупаться нету имхо.
    Ответ написан
    3 комментария
  • Как правильно добавить условие при запросе mysql?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Данный запрос выводит записи сегодняшней даты,
    фигасе вмутили выборку сегодняшней даты...
    типа так:
    $db->query("
    SELECT COUNT(*) as count
    FROM " . PREFIX . "_games 
    WHERE ( 
         gligue_id != '438' 
          AND date(game_date) = date( now())
    ) 
    or
    (
        date(game_date) = date( now() - INTERVAL 1 DAY) 
         AND game_status = 2
    )
    ");
    Ответ написан
    Комментировать
  • В чем разница и почему не проходит второй вариант?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Что не так?
    В- внимательность
    //тут все ок
    $url = BASE_URL . 'sendMessage?chat_id=' . $data['chat_id'] . '&text=' . $data['text'];
    
    // а тут вместо переменной урл идет дата, а урл вообще не определен
    $data = BASE_URL  . 'sendMessage?' . $data;
    
    
    //UPD: не заметил шедевральное )
    
    $data = array("text" => $text, "chat_id" => $chat_id);
    foreach($data as $k => $v)
      {
    //тут к итерируемому массиву конкатенируем строку, 
    //подход интересный, но работать не будет )
        $data .= '&' . $k . '=' . $v;
      }
    
    // все эти танцы спокойно заменяются на 
    $data = array("text" => $text, "chat_id" => $chat_id);
    $url = BASE_URL . 'sendMessage?' . http_build_query($data);
    Ответ написан
    5 комментариев
  • Как сохранить в базе mysql изображения?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    установить кодировку соответствующей таблицы в utf8mb4.
    После инициализации подключения должны быть запросы
    SET character_set_connection = utf8mb4
    SET character_set_client = utf8mb4
    SET character_set_results = utf8mb4
    Ответ написан
    Комментировать
  • Как добавить второй автоинкримент и заполнить поле?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    ALTER TABLE `sometable` 
    ADD COLUMN `id` INT AUTO_INCREMENT PRIMARY KEY,
    AUTO_INCREMENT=100;

    или создать по умолчанию, затем апдейтнуть ид на ид + 99
    Ответ написан
    Комментировать
  • Сохранение в базу из текстового поля в таблице?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Кошмарус максимус...
    ладно все в лапше функциями, так еще и
    1) в одной функции все в кучу - запросы, обработка, вывод...
    2) это вы в каждой функции будете создавать / закрывать соединение где надо из базы 1 запись вытащить?
    3) строка С ЗАПРОСОМ передается ПО ССЫЛКЕ, Карл!(экономим память епта!). Запрос как аргумент функции - вообще новое веяние...
    4) при этом делаем: $query = $string; ... Не, ну а чо...
    Ответ написан
    5 комментариев
  • Оптимизировать запрос MySQL. Как узнать сколько всего рядов когда использую limit?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $GLOBALS это ваще жесть конечно... как и вставка гданных из гет в запрос(даже с какой-то обработкой), у вас же препэйреды по идее должны работать!

    $STH = $GLOBALS["mysqlcon"]->prepare("
    SELECT count(id) as count
    FROM `post` 
    WHERE MATCH (tags) 
    AGAINST ('".clearStr($_GET['search'])."' 
    IN BOOLEAN MODE)");


    UPD: вам в любом случае придется делать 2 запроса, так как количество результирующих строк разное, кроме того каунт по первичному ключу будет быстрым, а выборка скорее всего сразу закешируется после первого запроса.
    Ответ написан
  • Если я бросаю свое исключение, то я могу указывать любой код? Даже не обзятально 404, если ошибка связана с неудачей в поиске чего-либо?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Тут еще и вопрос - "ошибка связана с неудачей в поиске чего-либо" - если это какая-то выборка пустая, то никакого особого ответа не нужно, просто пишете что "ничего не найдено", код 200. Ексепшн бросаете только в случае когда допустим файл ДОЛЖЕН быть по логике приложения(например на него есть запись в бд), но физически его на сервере нет. Это уже исключение, в случае же пустого результата поиска никакого эксепшна нет, это не исключительная, а штатная ситуация.
    Ответ написан
    Комментировать
  • Как правильно писать условие с числом?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    7 == intval($attribute_group['attribute_group_id'])
    Ответ написан
  • Как защитить файлы от скачивания?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Никак, все что попало на клиент = уже есть у клиента, в самом сложном случае я просто открою консоль нетворка и скопирую сырые данные приходящие с сервера.
    Ответ написан
    2 комментария
  • Где кончаются границы возможностей CMS в сравнении с web-разработкой?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Какие самые "топовые" CMS существуют?

    если речь идет о пхп, то топовые по какому критерию вам нужны?
    Самая распространенная - wp.

    Где кончаются их границы возможностей, в сравнении с web-разработкой?


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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    После подключения должны быть запросы
    SET character_set_connection = utf8mb4
    SET character_set_client = utf8mb4
    SET character_set_results = utf8mb4

    иначе клиент не знает в какой кодировке принимаются данные со стороны бд.
    Ответ написан
  • Как валидировать информацию из mysql бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В принципе есть всего 2 варианта, оба варианта выше написали.
    1) уникальный ключ по 2 полям
    2) Селект по этим же полям и проверка на стороне ЯП на наличие записи

    Оба варианта работать будут, однако я бы все же советовал бы использовать 2 вариант. Не смотря на то что вариант 2 имеет некоторую возможность коллизий(как верно заметил Rsa97), он не вызывает неоднозначности в выполнении, то есть он явно проверяет наличие строки, в то время как первый метод вызывает ошибку вставки по уникальному ключу на стороне БД, что гораздо сложнее обрабатывать. В целом ничего не мешает скомбинировать оба метода, тогда коллизий можно избежать, максимально ограничив количиство возможных ошибок предварительной проверкой.
    Ответ написан
  • Можно ли обойти ISSET или $_SESSION?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Короткий ответ: нельзя
    Более длинный ответ: можно при некоторых обстоятельствах, нарушающих безопасность системы, например неправильная настройка хранения временных файлов на хостинге, возможность запуска вредоносных JS скриптов, XSS и т.п.
    Ответ написан
    Комментировать
  • Как можно ускорить работу с большим количеством данных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) замер времени запроса
    2) замер времени рисования графиков после запроса
    3) Настройка slow query log
    4) Если дело действительно в запросах, а не скажем в модуле построения графиков - курить explain
    5) Расставить индексы на поля которые БД выбирает перебором "в лоб" группами по используемым полям
    6) если в коде(маловероятно)- тут уже сокращать и оптимизировать циклы
    Ответ написан
    Комментировать
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - ООП, иначе нет смысла заморачиваться с крупным проектом, да и функциональный подход сегодня вообще в проектах больше чем "свой микроблог" никто не использует, это не рационально.
    Так же откройте для себя MVC и возьмите какой-то фреймворк в котором все это уже нормально реализовано, в итоге время потраченное на прочтение документации и написание контроллеров и моделей к проекту будет в разы меньше чем вы потратите на свое кошмарное велосипедостроение. Кроме того, построенный по вашим наброскам Титаник и показать то кому-либо будет стыдно, а знания любого современного фреймворка напротив - будет большим плюсом.
    Удалив модуль и БД мы повлияем на работу других модулей. Изменив структуру БД мы повлияем на работу других модулей.
    SOLID, DRY, KISS...PSR4 и много других страшных аббривиатур вам помогут )
    Ответ написан
    8 комментариев
  • Есть ли в свободном доступе скрипт бронирования недвижимости?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Тут нет ничего сложного(визуально), однако в букинге очень много неочевидных проблем, начиная с доступности на заданный период и компановки размещения групп людей по группе жилых мест, и заканчивая ценой с учетом сезонных/выходных скидок и прочих ценообразовательных нюансов. Если действительно нужно только календарь и цена - конечно же все гораздо проще, на фрилансе ищите исполнителя за недорого, задача тривиальная.
    Ответ написан
    Комментировать