• Как правильно составить sql запрос?

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

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

    Скорее всего нужно перенести бд и настроить пользователя, либо согласно настройкам старого приложения, либо создать нового и настроить конфиги приложения под него.

    Остальное вам подскажет error.log, если версия достаточно древняя много чего может не работать, или работать не так. Так же часто в старых версиях все пути забиты вручную, или разово определяются при инсталляции, скорее всего при переносе тоже надо будет перенастроить.
    Ответ написан
  • Как узнать какие SQL-запросы сейчас происходят на сервере, либо статистику обращений по URL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Либо такой же мониторинг по HTTP-запросам, чтобы видеть куда чаще обращения идут.
    Ээээ... access.log, не?

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    https://summernote.org/, единственно - картинки вставляются в бэйз64, либо так и хранить, либо регулярками на сервере парсить и декодить в нормальный файл. В остальном очень удобный и легкий.
    Ответ написан
    Комментировать
  • Как загружать slick-slider первоначально?

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

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    В пхп есть замечательный метод empty(), да и иф тут лишний, тернарника достаточно.
    <?=(!empty($_GET['status']) && in_array('Завершён', $_GET['status']))?'checked':'';?>

    Есть варианты когда таких одинаковых проверок много, тогда есть смысл сначала проверить существует ли $_GET['status'], и если нет - присвоить $_GET['status'] = [], тогда проверка на емпти будет не нужна, но это больше частный случай...
    Ответ написан
    6 комментариев
  • PHP Spout не работает ошибка Class 'ZipArchive' not found (0)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    На сервере php 7.2
    Точно?
    Что может быть не так?
    Как узнать, какие библиотеки php подключены?
    Ответ написан
  • В чём заключается ошибка?

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    понимаю что нужен флаг состояния
    Нет, флаги это про другое, это про булево состояние, а вам нужен ключ / токен.

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

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

    PS: Зачем, интересно, вы делаете препэйр, если не используете подготовленные выражения??? Как насчет ИСПОЛЬЗОВАТЬ подготовленные выражения?
    Ответ написан
    Комментировать
  • На чем реализовать MVP для сайта с личным кабинетом?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    По функционалу - тянет на фреймворк, готовых решений искаропки 99% не найдете, а переписывать функционал плагинов для вп или чего-то другого готового - либо очень дорого и все равно придется переделывать позже, либо дать студенту джуну задешево, но криво, долго и вообще хз сможет ли...

    Так что мое имхо - писать сразу на чем-то более-менее вменяемом: лара, симфони, зенд... Не тот случай когда мвп можно поднять на коленке, логика более-менее серьезная...
    Ответ написан
    Комментировать
  • Какой это язык?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Коротко:
    Какой это язык программирования?
    Это язык разметки
    Пишет что html , но он не выглядит как html
    html и есть, закомментированные строки содержат некоторую информацию в JSON, но суть от этого не меняется, возможно какой-либо скрипт на фронте умеет вытащить из коментов некую инфу, что-то типа нотаций. ИМХО так себе решение, что в прочем не сильно удивительно для вордпресса...
    Ответ написан
    Комментировать
  • Как найти ошибку 500?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    смотреть логи/включить отчет об ошибках в пыхе, 500 ошибка - это просто сигнал что все упало, подробности в логах.
    Ответ написан
    2 комментария
  • Как ускорить поиск в Joomla?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Сложил поаккуратнее
    SELECT  
      CASE WHEN LOWER(a.title) LIKE LOWER('%слово%') 
      THEN 5 ELSE 0 END  +  
      CASE WHEN LOWER(a.title) LIKE LOWER('%поиска%') 
      THEN 5 ELSE 0 END  AS relevance,
       a.title AS title, 
       a.metadesc, 
       a.metakey, 
       a.created AS created, 
       a.language, 
       a.catid, 
       CONCAT(a.introtext,a.fulltext) AS text,
       c.title AS section,  
      CASE WHEN CHAR_LENGTH(a.alias) != 0 
               THEN CONCAT_WS(':', a.id, a.alias) 
               ELSE a.id END as slug, 
      CASE WHEN CHAR_LENGTH(c.alias) != 0 
                THEN CONCAT_WS(':', c.id, c.alias) 
                ELSE c.id END as catslug, 
                '2' AS browsernav
      FROM db_content AS a
      INNER JOIN db_categories AS c 
      ON c.id=a.catid
      WHERE ((LOWER(a.title) LIKE LOWER('%слово%') 
      OR LOWER(a.introtext) LIKE LOWER('%слово%') 
      OR LOWER(a.fulltext) LIKE LOWER('%слово%') 
      OR LOWER(a.metakey) LIKE LOWER('%слово%') 
      OR LOWER(a.metadesc) LIKE LOWER('%слово%')) 
      AND (LOWER(a.title) LIKE LOWER('%поиска%') 
      OR LOWER(a.introtext) LIKE LOWER('%поиска%') 
      OR LOWER(a.fulltext) LIKE LOWER('%поиска%') 
      OR LOWER(a.metakey) LIKE LOWER('%поиска%') 
      OR LOWER(a.metadesc) LIKE LOWER('%поиска%'))) 
      AND a.state=1 
      AND c.published = 1 
      AND a.access IN (1,1,2,3,6) 
      AND c.access IN (1,1,2,3,6)
      AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-06-08 16:24:40') 
      AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-06-08 16:24:40')
      GROUP BY a.id, a.title, a.metadesc, a.metakey, a.created, a.language, a.catid, a.introtext, a.fulltext, c.title, a.alias, c.alias, c.id
      ORDER BY  relevance DESC, a.created DESC 
      LIMIT 20


    В такой каше и разобраться то сложно, тем более без таблиц, а что-то советовать - вообще хз...

    На первый взгляд - десяток вайлдкард лайков - идея на троечку с минусом... так же создается впечатление что кучу логики, которая могла быть легко исполнена со стороны пыха, вкинута в запрос, что тоже не добавляет скорости...

    Ну и гроуп бай по куче полей тоже так себе затея...

    Похоже что что-то пошло не так или на этапе проектирования хранилища, или такова сама по себе жумла...

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

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

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Решение на жквери + ванила
    Плюсы - работает красиво, аккуратно, в том числе и с динамически подгружаемыми элементами
    Минусы - нужОн жквери, хотя можно переписать и без него, но будет длиннее и мне лениво )
    $("body").on('click', '[href*="#"]', function(e){
                e.preventDefault();
                var fixed_offset = 100;
                if(this.hash){
                    var tp = parseInt($(document.querySelector(this.hash)).offset().top);
                    $('html,body').stop().animate({ scrollTop: tp - fixed_offset }, 1000);
                };
            });
    Ответ написан
    Комментировать
  • Какие проекты можно реализовать начинающему php разработчику?

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    ручками воткнуть .toLocaleDateString("ru-RU");
    Ответ написан
    3 комментария
  • Освобождается ли память?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer