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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Одним инсертом скорее всего вставить не получится, как на стороне мускуля есть ограничения по буферу запроса так и со стороны пхп есть ограничения по таймауту, длинне передаваемого запроса и проч( много настроек короче.) Как написал Eugene Mosyukov есть 3 варианта, но если вам необходимо использовать только код - разбивайте на инсерты по 100 строк в цикле, это 100 запросов у вас выйдет, должно быстро вставиться, можно до 200-300 строк за раз попробовать, если есть возможность этот массив получать всегда то экспериментом только вывести количество можно.

    Макс Васильев:
    Я слышал, что множественные запросы в цикле не приветствуются.
    да, это плохая практика, но она относится к задачам типа "в цикле делаем вычисления, и тут же в цикле делаем запрос". Создаются куча запросов к базе на пустом месте, там где можно сформировать 1 запрос и после цикла отправить все сразу 1 запросом. У вас другая ситуация - данных много, больше чем за раз обрабатывает буфер бд, цикл здесь для преодоления оверхеда по размеру, тут он будет в тему, ибо все равно не отправляет по 1 строке, а формирует большие запросы с разовым исполнением
    Ответ написан
    3 комментария
  • Подключение стороннего php скрипта на сайт?Как?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если оба сайта принадлежат вам (у вас есть доступ к исходникам обоих сайтов) тогда задача решается, хотя и не без танцев с бубном и камасутры. Если один из хостов вам не принадлежит (особенно тот с которого вы пытаетесь получить скрипт) задача решения не имеет, во всяком случае в данной формулировке. Причина банальна и ясна любому, кто хоть немного понимает принцип работы серверных скриптов.
    Вы объясните что вам нужно сделать на самом деле, по тому что то что вы делаете похоже на попытку попасть из пушки 19 века по Луне. Визуально все просто, на деле все совсем не так.
    Ответ написан
  • Php и MVC, как правильно реализовать многораздельный сайт?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Тоесть создать 1 только модель для раздела и в ней создать много методов?

    Возможно вы не очень понимаете суть моделей, как и мвц в целом. Модель - это отдельная сущность, например пользователь, запись блога, товар етц. Контроллер манипулирует методами моделей для создания набора данных, которые потом передает в представление. По этому количество контроллеров никак не коррелирует с количеством моделей, в одном контроллере может вызываться / создаваться много моделей (например всегда создается текущий пользователь). Отдельным классом стоят коллекции - объект групп, которые часто используют для создания разных списков и наборов объектов одного типа (например список пользователей или товаров).
    Ответ написан
    Комментировать
  • Надо ли в sql-запросе писать or die?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Artem0071: задача какая? Сохранить секретность прямых ссылок на файлы? Тогда file_get_content, примерно так:
    header('Content-Disposition: attachment; filename="somefile.jpg"');
    header("Content-Type: application/octet-stream");
    header("Content-Length: " . filesize($outputName));
    echo (file_get_contents($outputName));
    если не принципиально - хеадер типа такого:
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment;filename=somefile.jpg ");
    header("Content-Transfer-Encoding: binary ");
    Ответ написан
    6 комментариев
  • Как в PHP PDO узнать какой запрос с параметрами выполнился?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Никак, пдо так не умеет, ибо подстановка осуществляется движком бд, сначала интерпретируется строка запроса, затем в нее попадают данные из плейсхолдеров. Самый простой способ в вашем случае заменить bindParam на массив, а в строке запроса вставить "?". Как то так:
    $sql = "UPDATE $order_navigator_table SET date_registration=? WHERE c_id=?";
    $stm = $pdo->prepare($sql);
    $data = array($_POST['date_register'],$_POST['order_uid']);
    $stm->execute($data);
    var_dump($sql);
    var_dump($data);

    дальше можно руками вставить и проверить.
    Ответ написан
  • Как с помощью php читать из файла txt только вторую строку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $show_info = file('events/kp1/dungeon1.txt');
      echo $show_info[1];
    Ответ написан
    2 комментария
  • Какая должна быть правильная авторизация на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Авторизация(любая) работает при ее использовании, легче всего организовать ее использование при единой точке входа и нормальной архитектуре(например мвц). Весь смысл - получить связь пользователя с правами и зафиксировать ее на время работы с сайтом. Далее в "закрытых" частях сайта эта связь должна быть подтверждена(прчитана сессия с ключем авторизации или токен из куки, не важно вообще). Обычно пришется простенький метод/функция типа isAuth() и получают ответ тру/фалс, далее по логике, выбрасывать на главную, давать страницу ощибки, кидать на авторизацию, короче от задачи зависит.
    Ответ написан
    Комментировать
  • Возможен ли повтор функции php без использования JS?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Это опять очередной велосипед с "гениальной" идеей делать какие-то мелкие действия по истечении времени. 50% на то что в базе должно меняется "по крону" какое-то поле типа устарело. Включите мозг, решения не всегда такие "простые", обычно все проще, просто надо подумать.
    Ответ написан
    Комментировать
  • Как работать с классами через Ajax?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У вас по кнопочке аяксом подгружается форма? Зачем? Вы что-то введенное пользователем получаете?
    Аякс нужен там, где заранее сформировать какие-то элементы нет возможности, или вариантов слишком много, в данном случае всего 2 формы, с заранее известными параметрами, нет смысла для этого аякс прикручивать. Делаете 2 формы, даете атрибут хиден, по выбору кнопочки показываете нужную форму. При заполнении формы уже можете аяксом отправить пользовательский ввод, но можно и просто субмитом обойтись, по вкусу.
    Ответ написан
    3 комментария
  • Есть ли какие-то приложения для сохранения полезных ссылок на различные библиотеки?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариантов масса.
    Один из самых обкатанных и производительных - сокет.ио, но нужно будет ставить отдельно сервер ноды, если не на ноде проект.
    Вариант с пхп и лонг поллинг - на хабре есть пару толковых статей. Приемлемый вариант, его использует вк, например, но у них там свой пхп, с блэкджеком и компиляцией. В целом, при небольшой нагрузке и всем написанном на пыхе - нормальный вариант.
    Вариант с жс и пхп, чат инициализируется с клиента запросами к аякс куску сайта, отвечающему за чат. Ставится сет интервал 10-15 секунд и опрашивается сервер на предмет "есть чё?". Минусы: задержка между сообщениями до 15 сек, и бомбежка сервера запросами.
    Есть еще экзотика всякая, но там уже совсем треш и угар имхо.
    Ответ написан
    Комментировать
  • Почему из БД ничего не выбирается?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первое что нужно сделать
    $link = mysqli_connect('localhost', 'user', 'pass', 'db_name');
        $query = "SELECT * FROM `cpl_credits` WHERE `bank_id` = $bank_id";
        var_dump($query);
        $result = mysqli_query($link, $query) or die(mysqli_error($link));

    Копируем строку запроса и идем в пхпмайадмин, вставляем запрос напрямую в поле запросов, смотрим как и что сработало. В случае
    даже так ничего не выбирается:
    SELECT * FROM `cpl_credits`

    проверь права текущего пользователя мускуля к этой таблице.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы id сессии заносился в куку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первым делом - E_ALL включен?
    если да то :
    0) А что писалось в сессию?
    1) Проблема на всех браузерах или только на одном конкретном?
    2)
    session_start() точно подлкючил в самом начале
    на всех страницах? Общая точка входа?
    3) тупо записать что-то в сессию и на другой страничке прочесть?
    Ответ написан
  • Как получить url картинки в preg_match_all?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в мемориз, много полезных юзекейсов.
    Ответ написан
    Комментировать
  • Как организовать одобрение/отклонение правок от нескольких пользователей в тексте?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я туплю или вы гит переизобретаете?
    Ответ написан
  • Как посчитать сумму детей необходимого узла за каждый день месяца (Nested Set)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    то есть запрос по типу select * from structure where parent_id = 6 занимает 6 секунд?
    Какой запрос используете, какая структура у таблицы structure?
    Ответ написан
    Комментировать
  • Как лучше реализовывать баланс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Все операции должны быть логированы, соответственно таблица, выборка, подсчет.
    Ответ написан
    Комментировать
  • Скинуть данные из REDIS в MYSQL после истечения срока жизни ключа?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://redis.io/topics/notifications

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А делать из базы выборку с условием where `some` is not NULL из каких соображений не подходит?
    Ответ написан
    3 комментария