• Как лучше обновить порядок строк при сортировке в mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Так вот как мне лучше обновить элементы с новыми порядковыми номерами, если представить что в один момент могут это делать несколько пользователей. Что бы все не запуталось.
    что конкретно может запутаться? В вашем случае если все могут менять, то будет работать принцип "кто последний тот и папа", не зависимо от транзакций и прочей чехарды.
    Ответ написан
  • Стоит ли передавать пустые строки или статичные параметры методом prepare в php?

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

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    //$mysqli->query('SET NAMES "utf8"'); //Если расскоментировать эту строку все работает

    - Доктор, когда я делаю так - больно!
    - Не делайте так.

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

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых покоцан первый див
    Во вторых - добавьте тег формы, пока это просто элементы внутри хтмл, что как минимум не валидно, и кроме того не удобно обрабатывать.
    В третьих формат имени - добавьте в конце имени инпутов '[]'
    <input type="text" class="form-control input-sm" name="sum_fix[]">

    Дальше все стандартно, субмит формы, на сервере получаете массив полей, сохраняете. Можно прикрутить аякс и отправлять без перезагрузки, по событию субмит на форме.
    Ответ написан
    Комментировать
  • Как правильно обработать большой JSON файл, расположенный на удаленном сервере?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если на сервере есть 15+ гиг - то лучше скачать и далее работать уже с локальным файлом, который можно открывать кусками любого удобного размера. Если такой возможности нет, то сначала надо убедиться что файл на удаленном сервере не будет меняться во время работы с ним(а работа будет не сильно быстрой, учитывая размер файла), далее открывать файл чанками, указывая смещение. Тут придется повозиться, так как нужно будет брать куски, которые кроме того что размером отличаются, так еще и каждый следующий будет считаться от позиции высчитанной из предыдущего, в зависимости от того вытащился ли целый фрагмент json структуры или "битый", в котором есть лишний хвост или кусок в котором не хватает данных до полного элемента.
    Ответ написан
    4 комментария
  • Как узнать почему php-fpm: pool www полностью грузит процессор?

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

    Есть еще вариант разбираться самостоятельно(но судя по "Но модуль состоит из большого количества файлов, как же мне определить в какой из них идти и использовать die?" это не ваш вариант), или обратиться на фриланс, ибо по таким симптомам никто вам ничего конкретного сказать не сможет.
    Ответ написан
    Комментировать
  • Как выполнит одним запросом несколько действий MYSQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как выполнит одним запросом несколько действий MYSQL?
    Никак, это разные запросы с разными таблицами и разными задачами.

    для снижения нагрузки на базу данных.
    Неужели у вас уже более 1000 запросов в секунду и необходима срочная оптимизация?

    $db->query("UPDATE score SET score = score + $klik push = push + 1 WHERE vk_id = $ids LIMIT 1");
    $db->query("UPDATE score SET score = score + $klik push = push + 1 WHERE vk_id = $ids LIMIT 1");
    во первых - не хватает запятых между присваиваниями, во вторых SET score = score + $klik*2, push = push + 2 вот вам минус 1 запрос. В третьих - вроде используете pdo, а переменные вставляете без prepared statements...

    Все это можно:
    1) обернуть в транзакцию - профит от этого - целостность выполнения операций(на скорости особо не отразится).
    2) Запустить одним скриптом, разделив запросы семиколоном ";" (профита практически никакого)
    Ответ написан
    5 комментариев
  • Почему не работает скрипт на jQuery + ajax?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    у вас 2 ошибки(даже можно сказать 3):
    1)
    function productDeleteWish() {
            $(this)...
    в этом месте контекст $(this) уже потерян, что легко проверяется console.log($(this)).
    Вместо этого выше нужно передать контекстную переменную в другую, let that = $(this);
    2) function productDeleteWish() { не принимает аргументов, хотя функция done() возвращает какой-то результат. Хотя это по моему тут вообще лишнее.
    3) Не используете дебаг, всего-то надо было последовательно отловить что происходит по ходу скрипта.

    Вообще логика скрипта - мрак и ужас, все умещается в 4-5 значимых строк:
    $('.js-addwish').on('click', function(){
            $(this).toggleClass('in_wishlist');
              //Отправляем запрос на удаление/добавление товара из избранного, 
              //так как id уникальный, никаких других данных серверу передавать не нужно
              //в ответ просто получаем 1 или 0 (добавили/удалили)
            $.get('/wishlist/?product_id=' + $(this).attr('product_id'), function(data)){
               (data == 1)? alert('addet!') : alert('removed!');
             )}
        )}
    Ответ написан
    1 комментарий
  • Почему переменная пропадает из области видимости в другом файле?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Почему переменная пропадает из области видимости в другом файле?
    По тому что инклуд происходит внутри объекта $web_template, в котором область видимости изолирована текущим вызывающим объектом.

    В самом файле такой код:
    <?php
    $products = $GLOBALS['products'];
    Во первых - вы пытаетесь достать из глобал переменную, которую туда не помещали, во вторых - это просто жопа какой плохой подход, вместо этого у вас должно быть что-то типа
    $web_template->products = $products;
    $web_template->include('catalog', 'cards-simple');

    В самом файле такой код:
    var_dump($this->products); // $this будет ссылаться на сам объект $web_template

    PS:это при условии что я правильно понял структуру вложений вашего приложения.
    Ответ написан
    1 комментарий
  • On duplicate key update?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Нет, прямой возможности нет, то есть конструкция языка такого не предусматривает.
    Что можно сделать:
    1) Реализовать триггер на инсерт во вторую таблицу всего что добавляется в первую таблицу
    2) Сторед процедура со схожим функционалом
    взято тут: https://stackoverflow.com/questions/11940506/mysql...
    Ответ написан
    Комментировать
  • Как правильно организовать ЧПУ для дерева категории в PHP?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    mail() отправляет почту через дефолтный сервер хостера, посмотрите какой адрес отправителя у ваших писем, скорее всего он не соответствует реальному адресу отправки.
    Для нормальной работы:
    1) зайдите в панель управления хостингом, заведите нормальный емэйл с вашим доменнным именем
    2) Подключите нормальный мэйлер, например PHPMailer, SwiftMailer. как и посоветовал вам Дмитрий
    3) Настройте отправку через свой smtp сервер с нужными параметрами(их можно посмотреть в свойствах почтового ящика в панели хостинга)\
    4) Profit!
    Ответ написан
    Комментировать
  • Украли сайт с которого редирект, как!?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Сайт заливали не через гитхаб. Сделан он был на локалке и на хостинг отправлен в виде архива, они распаковали и всё.
    А архивчик потерли? Или это стало бесплатным бонусом за упорство и находчивость?

    Кроме того есть еще вебархив, загляните туда.
    Ответ написан
    2 комментария
  • Как сформировать запрос к MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Нужно получить resources_id, resources_name,
    Все или по какому то критерию?
    select 
    `resources_id`,
    `resources_name` 
    from `resources`

    количество записей в таблице statistics относящиеся к resources (/resource/ ид ресурса)

    select 
    count(*) 
    from `statistics` 
    where `statistics_url` = '/resource/resources_id'

    Запросы верные. Или есть еще условия какие-то?
    Ответ написан
  • Как оптимизировать sql запрос?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    select * 
    from feed
    where date > '2019-01-01' 
    and jid in ( тут, айдишники, всех, 300, спартанцев, вместо, 300, запросов)
    order by date desc
    Ответ написан
  • Как организовать хранение объекта с таймером на сервере без СУБД?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    1) Какой-нибудь мемкеш или редис.
    2) Файлы, как очевидное решение
    3) Поставить самую простую базу, например sqlite
    Ответ написан
    Комментировать
  • Откуда ошибка при подключении к SMTP gmail с помощью fsockopen?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в доке говорится что stream_socket_client() предпочтительнее, кроме того - проверьте доступен ли протокол с помощью функции stream_get_transports(). Проверьте соединение с другим сервером, возможно этот не отвечает по каким-то своим причинам.
    Ответ написан
  • Почему бы не использовать протокол Telegram?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Проверить консоль браузера на ошибки в скриптах
    2) Проверить лог сервера на ошибки в обработке
    3) $("#submit_btn").click(function(){ не имеет передаваемого евента и не запрещает действие по умолчанию, скорее всего форма тупо субмитится, ретурн фалс не всегда срабатывает. Кроме того действие правильнее делать по субмиту формы, я легко могу нажать ентер в любом поле формы и никакой валидации не будет, все уйдет как есть.
    4) header('Location:/'); при аякс запросе не может сработать, так как заголовок отсылается обратно скрипту, который чхать хотел на заголовки с редиректом.
    5) mail() не гарантирует отправку, как и не может обработать ошибки отправки.
    6) Хеадеры для письма а) не содержат \n во второй строке, б) все равно не передаются в мэйл.
    7) $latter - это $letter? Обычно пишут $body, так как и заголовок и все содержимое - это письмо.
    Ответ написан
    Комментировать