Задать вопрос
Ответы пользователя по тегу PHP
  • Как оптимизировать SQL запрос рандомной выборки?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    У Вас есть 2 задачи: задача найти вхождения строки, и задача выбрать из результатов случайные 10.
    Это 2 разные задачи :)

    Первую задачу логично решать используя инструменты предназначенные для поиска, например Sphinx. sphinxsearch.com
    Он быстро вернет Вам id подходящих записей.
    Из них средставами PHP выбираем сколько надо случайных, далее запрос в SQL select ... where id in (1,2,3,4...)

    В Вашем случае это будет наиболее производительное и масштабируемое решение.

    PS Мне не очень понятна сама идея вывода 10 случайных записей соответствующих паттерну. Не лучше ли выводить 10 самых релевантных? :) Или у вас слишком общий паттерн и о релевантности речи не идет? Уточните этот момент пожалуйста.
    Ответ написан
  • Как сделать функцию loadmore только вытаскивать не по id а по цене?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Google "mysql LIMIT OFFSET"
    1) вам кроме цены надо передавать еще сколько записей показано и делать соответствующее смещение.
    2) в запросе нужно делать сортировку "order by price asc, id asc" (т.к у вас price не уникален - что бы гарантировать стабильный порядок строчек при разных запросах)

    select * from `bulletins`
    where 
      `price` > $value
    order by 
      `price` asc, 
      `id` asc
    LIMIT 1000, 10

    Где 1000 - количество уже показанных записей
    Ответ написан
    Комментировать
  • Как запретить выполнение php из файла?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Не надо выводить на экран содержимое файла. Работайте сразу с базами данных.

    2. Даже если Вы это делаете, это надо делать не require а
    <?php 
    $a = file_get_contents("input..txt");
    echo htmlspecialchars($a);


    3. В данном случае актуально подумать о xss атаках.
    Для этого используйте htmlspecialchars
    Ответ написан
    Комментировать
  • Как организовать загрузку фала с его переименованием php+ajax?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    различные ajax запросы между собой никак не связаны по определению.
    т.е сохранение имени файла - это вообще независимая операция.
    отдельно сохраняете файл, возвращаете в js какой то его идентификатор
    вторым запросом передаете идентификатор и что вы там хотите сохранить.

    Отдельно хочу подчеркнуть, что загрузка файлов под оригинальными именами - это источник адских головных болей и уязвимостей в будущем. Все файлы необходимо обязательно ренеймить, в идеале убирая/перезаписывая расширение.
    Ответ написан
  • Почему не отправляются письма функцией mail()?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1) Сделайте себе отдельный домен с которого вы будете отправлять рассылки, уведомление, итд.
    2) Подключите его к pdo.yandex.ru , создайте там почтовый ящик с которого будет идти рассылка.
    3) Дополнительно подключите его к https://postmaster.yandex.ru/
    4) Настройте DKIM и SPF записи help.yandex.ru/postoffice/security.xml
    5) Используйте любое решение для php которое умеет отправлять почту через smtp (например swiftmailer)
    В принципе вместо яндекса можно использовать любую почту по вкусу.
    Ответ написан
    7 комментариев
  • Временные таблицы "mysql" что и зачем?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Temporary tables применяются при написании хранимых процедур со сложной логикой, либо при решении других специфических задач, когда в рамках одной сессии необходимо хранить большой объем обработанных данных, не передавая его за пределы sql.
    В общем случае они Вам не нужны.
    Ответ написан
    Комментировать
  • Цикл while: какие условия он принимает?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Без просмотра всего целиком - не понятно что он имел в виду.
    Вообще выражение ($a = $b) возвращает $b.
    Т.е этот while - это по сути "пока функция fetch возвращает что то отличное от 0/false"
    Ответ написан
    Комментировать
  • Как передать файл из 1С на веб-сервер?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Раз Вам нужно передать файл - значит api его как то умеет принимать.
    Соответственно Вам нужно узнать в каком виде api умеет принимать файл и отправить в этом виде.
    Информации по 1C в сети море, вот например как отправить через POST infostart.ru/public/20017
    ( Код на php в ней ужасен, а код на 1с я оценить не могу так как не знаю 1с :) )
    Ответ написан
    Комментировать
  • Как вытащить src из img и вставить в file_put_contents?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    @Vadim997

    Не знаю что именно Вы хотите сделать, но код у вас просто какой то бред.
    Вы явно не понимаете что такое php и что такое js.
    Ознакомьтесь пожалуйста phpfaq.ru/na_tanke
    Ответ написан
    2 комментария
  • Будет ли востребован подобный сервис?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Google "сервис для видео собеседований"
    Первые же ссылки:
    lime-prime.ru
    vcv.ru
    webinar.tw/primenenie-vebinarov/onlayn-sobesedovan...
    cmsone.ru/veb-razrabotka/veb-tehnologii/v-runete-p...

    Вообще эту историю разные люди пытаются делать года так с 2007. До сих пор не взлетело нормально ни у кого.

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

    В итоге считаю что эти автоматизированные видео интервью в каком то виде на какие то должности могут применяться как один из этапов (ассистентку потенциальную о размере сисек спросить, посмотреть будет ли стесняться например ) но массовой эта история не станет.
    Ответ написан
    1 комментарий
  • Как реализовать структуру базы данных?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Это называется соотношение многие ко многим.
    Задается отдельной табличкой вида

    CREATE TABLE `xref_user_chat` (
     `user_id` int(11) NOT NULL,
     `chat_id` int(11) NOT NULL,
     PRIMARY KEY (`user_id`,`chat_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    Ответ написан
    1 комментарий
  • Как настроить почту на VPS?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    imho самое простое решение решение:
    1) Сделайте себе отдельный домен с которого вы будете отправлять рассылки, уведомление, итд.
    2) Подключите его к pdo.yandex.ru , создайте там почтовый ящик с которого будет идти рассылка.
    3) Дополнительно подключите его к https://postmaster.yandex.ru/
    4) Настройте DKIM и SPF записи help.yandex.ru/postoffice/security.xml
    5) Используйте любое решение для php которое умеет отправлять почту через smtp (например swiftmailer)

    В принципе вместо яндекса можно использовать любую почту по вкусу.
    Ответ написан
    Комментировать
  • Что написать вместо $_GET в моей пагинации?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1) Почитайте про MVC пожалуйста и примените его.
    Это как минимум сделает код читабельным

    2) Не используете расширение mysql, используйте mysqli или pdo

    3) Мне не понятна суть вопроса - зачем Вы хотите заменить $_GET['page'] ?
    Ответ написан
    Комментировать
  • Как реализовать живой поиск для ios приложения в php API?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    А где вопрос то? :)
    По тому что озвучено сейчас:
    1) За такие названия полей надо в любом случае убивать, не понятно ничего :)
    2) Если Вы хотите делать поиск - лучше воспользоваться существующими инструментами, например Shpinx или elasticsearch. Это на порядок лучше и качественнее чем делать LIKE в sql базе.
    Ответ написан
    1 комментарий
  • Как сделать автоматическую печать заказов из веб-приложения на кухонном принтере кафе/ресторана?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Если допустимо предположение что принтер физически подключен к серверу который все это дело хостит - то не сложно, достаточно сгенерить документ и через system кинуть его на печать.

    В более общем случае я бы написал микрософтинку десктопную на любом языке, которая ходила бы на сервер, получала список на печать ну и печатала :)

    PS Папа джонс? :)
    Ответ написан
    5 комментариев
  • Как отправить свои файлы на гитхаб?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    git-scm.com/book/ru/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2...

    Или поставить себе какое нибудь gui, например www.sourcetreeapp.com
    Ответ написан
    Комментировать
  • Какой должен быть запрос рандомного селекта с лимитом?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    За решение приведенное @aspetek надо убивать.
    Оно работает только пока у вас крошечная таблица.
    Даже на десятках тысяч записей, не говоря про сотни тысяч - оно начинает заметно тормозить.

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Наименее затратный:
    select * from news order by `date_pub` ASC, где date_pub собственно дата публикации новости.
    (Если новости не публиковались задним числом - можно и по id сортировать)

    А далее цикл в php вида
    $last_printed_month = '';
    foreach ($news_list as $item) {
      $curr_month = date('Y-m',$item->date_pub);
      if ($curr_month!=$last_printed_month) {
       echo ($last_printed_month = $curr_month);
      }
      echo $item->title;
    }
    В вашем тестовом примере ничего не написано про год, но мне кажется он нужен :)
    Если хочется писать месяц именно русскими буквами - надо написать крошечную функцию которая сконвертирует порядковый номер месяца - в строку :)
    Ответ написан
  • Какие знания/нвыки необходимы для написания своего API?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1) Вопрос использовать ли вообще ООП или нет - он очень условен.
    Без ООП не работает любой современный фреймворк.
    Поскольку MVC таки использовать надо - соответственно ооп у вас будет автоматом)

    2) По поводу Symfony - абсолютно без разницы на каком именно фреймворке Вы пишите свой код.
    Symfony мне кажется более сложен для начинающего, попробуйте Yii2 или Laravel.
    Опять же повторюсь, это не принципиально. Можно взять любой микрофреймворк - это будет даже полезней с точки зрения развития начинающего разработчика.

    3) API это по сути обычный набор скриптов, отличающийся от обычных страниц тем, что в web страницах вы отдаете html - а в API вы отдаете JSON/XML/что_то_ещё (я лично советую использовать JSON по целому ряду причин, но вопрос в целом холиварен)
    REST API (опять же дефакто массовый стандарт) - это договоренность о некоторых базовых принципах, по сути о форматах запроса, ответа, об отсутствии состояний (stateless)
    Возвращаясь к пункту 2 - многие фреймворки дают автоматизацию в построении rest api, например вот свежая статья с примерами по Yii2 habrahabr.ru/post/240149

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

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

    Прошу прощения если получилось сумбурно, писал одновременно с утренним кофе :)
    Ответ написан
    Комментировать