Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Где фермеры продают продукты, когда рынки закрыты?
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
Caarl

Александр Сисюкин

  • 54
    вклад
  • 26
    вопросов
  • 130
    ответов
  • 28%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Почему не хочет вытаскивать данные ИЗ бд или не работает переменная?

    ThunderCat
    ThunderCat @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)
    WHERE `ID`={$_GET['id']}
    за такое в приличном обществе бьют клавой по кумполу, до полного просветления.
    2) есть важнейшая функция, которую почему то все новички игнорируют - var_dump(); 100% решает проблемы, главное - правильно и часто использовать.
    3) Если есть запрос и возникает проблема с его использованием - выводите запрос (как строку) и запускайте этот запрос "вручную", например через пхпмайадмин.
    4) Вангую что вывод ошибок и варнингов у вас выключен. Смотрите логи или включите вывод ошибок.
    Ответ написан 25 июн. 2020
    1 комментарий
    Нравится 3 1 комментарий
  • Как заставить работать индекс при запросе?

    fast-je
    Дмитрий Тарасов @fast-je Автор вопроса
    Пишу на php.
    Rsa97, Спасибо за ответ, вы очень помогли.

    Ответ.
    Разница в том, что по полю `date` индекс у вас есть, а по выражению `date`+23328000 индекса нет и быть не может.

    Чаще всего MySQL не ошибается.
    В вашем случае ожидается, что под условие `date` < CONVERT(UNIX_TIMESTAMP(), SIGNED) попадёт 50% строк, а значит проще перебрать все строки, чем читать в одном месте индекс, в другом строки, на которые он ссылается.

    Индекс работает когда:
    1. В левой части условия находится чистое поле, а не выражение или функция от поля.
    2. Есть подходящий индекс. Если условий несколько, то может использоваться составной индекс, имеющий подходящий префикс.
    3. MySQL считает, что использование индекса затратит меньше ресурсов, чем прямое сканирование.
    Ответ написан 14 мар. 2020
    Комментировать
    Нравится 1 Комментировать
  • Достать ограниченное количество id к каждой характеристике через логический оператор IN либо другим каким-то способом?

    Rsa97
    Rsa97 @Rsa97
    Для правильного вопроса надо знать половину ответа
    (
      SELECT ...
        FROM `table`
        WHERE `feature_id` = 90
        LIMIT 6
    ) UNION (
      SELECT ...
        FROM `table`
        WHERE `feature_id` = 91
        LIMIT 6
    ) UNION ...
    Ответ написан более года назад
    Комментировать
    Нравится 2 Комментировать
  • Как начать цикл foreach с 3го элемента и закончить 6м элементом?

    Compolomus
    Дмитрий @Compolomus Куратор тега PHP
    Комполом-быдлокодер
    https://www.php.net/manual/ru/function.array-slice.php
    Срез массива
    foreach(array_slice(get_posts_best(), 2, 4) as $post) {
    //
    }
    Ответ написан более года назад
    Комментировать
    Нравится 3 Комментировать
  • Doctrine ORM Лучшие практики?

    fearintino
    Тимур Мухтаров @fearintino
    Php - Developer
    Есть очень хорошая презентация, посмотрите.
    ocramius.github.io/doctrine-best-practices/#
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 6 2 комментария
  • Настройка прав для nginx/php-fpm на ubuntu server?

    verdex
    Twelfth Doctor @verdex
    Если у Вас проект находится в домашней директории пользователя, то почему бы не создать отдельный pool php-fpm, работающий от нужного Вам пользователя, на директории права 755, на файлы - 644.
    Затем в /etc/php/7.0/fpm/pool.d создаете новый файл с таким содержимым:
    [user]
    user = user
    group = user
    listen = /run/php/php7.0-user.sock
    listen.owner = www-data
    listen.group = www-data
    pm = dynamic
    pm.max_children = 5
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3
    chdir = /

    В конфиге Nginx:
    location ~ \.php$ {
            try_files $uri /index.php =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php7.0-user.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

    Тогда PHP будет работать от имени заданного в директиве user пула php-fpm пользователя
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 6 Комментировать
  • Как сделать так, чтобы при переходе на другую страницу при помощи AJAX определённые элементы на странице сохранялись неизменными?

    ThunderCat
    ThunderCat @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    переходе на другую страницу при помощи AJAX
    ios_large_1470840620_image.jpg
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Как вывести список таблиц MySQL имя которых начинается с base?

    Александр @codemafia
    Самоотвод
    Обычным запросом SELECT ... WHERE из information_schema.tables
    Ответ написан более трёх лет назад
    5 комментариев
    Нравится 1 5 комментариев
  • Вы работете спеша (особенно если горит дедлайн)?

    xmoonlight
    xmoonlight @xmoonlight
    https://sitecoder.blogspot.com
    Во всём должен быть баланс и равновесие...
    1. Быстрее сделаете - быстрее сдадите и возьмёте ещё работы.
    2. Спешка не должна влиять на качество и здоровье.
    3. Всегда оставляйте себе 30% запас по времени и стремитесь завершить проект к этой дате.
    4. Старайтесь использовать наработки с предыдущих проектов и оптимизировать свои рутинные рабочие процессы и операции для уменьшения времени работы.
    5. Старайтесь делать так, будто делаете это себе: так Вы быстро получите новые заказы через "сарафанное радио".
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 5 1 комментарий
  • Как сделать чтоб одинаковые записи не заносились в бд?

    Stalker_RED
    Stalker_RED @Stalker_RED
    Чтобы не делать каждый раз проверку можно сделать ip ключем и вставлять при помощи INSERT ... ON DUPLICATE KEY UPDATE
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Можно ли использовать PHP и Python в одном веб-приложении?

    Иван @LiguidCool
    257803_original.jpg
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 15 Комментировать
  • Как проверить заполненность всех ячеек строки mysql?

    tsklab
    Константин Цветков @tsklab
    Здесь отвечаю на вопросы.
    Каким методом этом можно осуществить?
    Цикл по полям со счётчиком. Или хранить это число в строке, заполняя её триггером.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Случайный ряд из таблицы MySql, сейчас пол секунды. А максимально быстро как?

    iiifx
    Виталий Хоменко @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    1. Определите кол-во записей в таблице. Не последний ID, а именно кол-во
    2. Определите рандомное значение между 0 и кол-вом-1 записей, это будет смещение
    3. Получите нужную запись с таблицы:
    select `id` from `localities` offset {$offset} limit 1


    Не сравнивал скорость, но должно быть в разы быстрее.
    Рандомное смещение можно получить как на стороне PHP, так и на стороне MySQL.
    А о RAND() вам уже написали.

    Детально:
    У вас N записей в таблице, вам нужно получить через mt_rand(), к примеру, случайное число от 0 до N-1. Это и будет ваше смещение.
    $count = 100;
    $offset = mt_rand( 0, $count-1 );
    Ответ написан более трёх лет назад
    11 комментариев
    Нравится 7 11 комментариев
  • Как сбросить класс к начальному состоянию в php?

    AXP-dev
    Alexander Pushkarev @AXP-dev
    class A {
        public $str;
    
        public function getStr()
        {
            return $this->str;
        }
    
        public function setStr($str)
        {
            $this->str = $str;
        }
    }
    
    $a = new A();
    $a->setStr('New value');
    var_dump($a->getStr()); // New value
    $a = new A();
    var_dump($a->getStr()); // null
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 3 Комментировать
  • Выполнить функцию заново, если она ранее вернула false?

    DevMan
    DevMan @DevMan Куратор тега PHP
    элементарно, ватсон: ideone.com/d1xBXY
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 4 Комментировать
  • Как вытащить текст из переменной в php?

    qork
    display: block @qork
    { background: #F00B42 }
    $dom = new DOMDocument;
    $dom->loadHTML($a);
    echo $dom->getElementsByTagName('title')[0]->nodeValue;
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Какой "длины" может быть INSERT? Как импортировать 1 млн строк?

    MaxDukov
    Макс @MaxDukov
    впишусь в проект как DevOps.
    я недавно столкнулся с задачей загрузить 45млн строк из файла с инсертами, грузил в AWS RDS. Напрямую ориентировочное время загрузки было около 2 суток. после конвертации sed-ом в csv LOAD DATA INFILE отработал за 20 минут. Оказывается, так МНОГО быстрее.
    я это к чему... если структура не совпадает - структуру можно создать на этапе парсинга. Или загрузить как есть во временную таблицу, а потом уже сделать INSERT SELECT FROM
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Kohana, загрузчик фото, меняет расширения фото все в .jpg, как сделать чтобы расширения оставлял такие какие они есть?

    oxidmod @oxidmod
    он на jpg не может менять, разве что на png
    если хотите конкретное, то надо задать его вторым аргументом функи. ну или вы не тот кусок кода кинули
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Как отследить нужную комбинацию в массиве?

    Fesor
    Сергей Протько @Fesor
    Full-stack developer (Symfony, Angular)
    давайте думать. У нас есть массив с числами. У нас есть еще один массив с числами. Нам нужно проверить находится ли в первом массиве все элементы из второго. То есть что нам нужно, это сделать пересечени массивов (array_intersect) которое выделит "совпадения", убрать возможность повторений (array_unique) и посчитать количество. Если оно равно 5-ти - значит все хорошо.
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 7 1 комментарий
  • Crop resize до загрузки download?

    bingo347
    Дмитрий Беляев @bingo347 Куратор тега JavaScript
    Ткнуть в доку лучше готового к копипасте ответа
    Грузим картинку в память, используя FileApi, и отрисовываем ее на canvas
    Как либо изменяем
    Выгружаем как ArrayBuffer и отправляем на сервер по ajax
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 1 2 комментария
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Василий Банников
    • 12 ответов
    • 1 вопрос
  • Drno
    • 10 ответов
    • 0 вопросов
  • Lord_Dantes
    Lord_Dantes
    • 9 ответов
    • 0 вопросов
  • morto
    Danya Kozlovskiy
    • 6 ответов
    • 1 вопрос
  • sergey-gornostaev
    Сергей Горностаев
    • 7 ответов
    • 0 вопросов
  • delphinpro
    Сергей delphinpro
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации