• Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes, та же самая история вроде бы, он просто выкатывает все записи, без группировки, как это делает group by, по сути-то нужно чтобы он взял все class_messages_chat.chat_id, где соответствуют поля
    `class_messages_chat`.`to_user_id` =133337 или `class_messages_chat`.`from_user_id` = 133337, нашел эти chat_id в таблице class_messages и выдал последние записи, понятно, что там еще несколько таблиц участвует, но по ним группировок нет, сама суть именно в последних chat_id, но это видимо крайне сложно решить, хотя выглядит просто
    65d4a0dfaca5e854254023.png
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes,
    1.65d4959c692d2003304695.png
    2.65d495a77491d895686624.png
    3.65d495bb3478a070350722.png
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes, спасибо, вот это вроде бы работает как надо, записи идут начиная с большего class_messages.id , но теперь нет группировки, т.е выводятся все существующие записи в нужном порядке, а сгруппировать их нужно по class_messages.chat_id

    select B.*
    from (SELECT A.*,
             @prev as before_prev, 
    @rn as before_rn,
    IF(@prev <> A.chat_id, @rn:=1,@rn), @prev:= A.chat_id, @rn:=@rn+1 AS rn,
    @prev as after_prev, 
    @rn as after_rn
    from (
    SELECT
        `class_messages`.`id` as mess_id,
        `class_messages`.`chat_message`,
          `class_messages_chat`.`to_user_id`,
           `class_messages_chat`.`from_user_id`,
           `class_users`.`id`,
           `class_users`.`user_status`,
           `class_users`.`online`,
           `class_messages_chat`.`chat_id`,
           `class_messages_chat`.`ad_id`,
           `class_ads`.user_id,
           `class_ads`.title
        FROM `class_messages_chat`
        inner join `class_ads` on `class_messages_chat`.ad_id = `class_ads`.id
        INNER JOIN `class_users` ON `class_users`.`id`=`class_ads`.`user_id`
        inner join `class_messages` on `class_messages_chat`.`chat_id` = `class_messages`.`chat_id`
    WHERE (   `class_messages`.`to_user_id` = 133337
           or `class_messages`.`from_user_id` = 133337)
    and class_messages_chat.chat_id 
    order by class_messages.id desc
    ) A,
    (SELECT @rn:=1)rn,
         (SELECT @prev:=-1)prev
    ) B
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes, спасибо огромное, теперь второй работает, но возвращает 0 результатов, а первый вариант также ошибку выдает, но уже на другом месте

    #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '(partition by `class_messages_chat`.`chat_id` order by class_messages.id desc) r' на строке 13
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes, все равно ошибка там же..

    #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '(
    SELECT
          `class_messages_chat`.`to_user_id`,
           `class_messages_cha' на строке 4
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes, пишет, что нарушен синтаксис около
    (
    SELECT
          `class_messages_chat`.`to_user_id`,
    , в таком запросе я не смогу исправить ошибку..
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    alexalexes, спасибо большое, но у меня версия 5.7, забыл уточнить сразу, как в этом случае быть?
    Написано
  • Как сгруппировать по убыванию?

    @viktorross Автор вопроса
    Adamos, это я пробовал так сделать, потом нашёл, что так не вариант
    Написано
  • Как отключить кеширование скриптов php ratchet?

    @viktorross Автор вопроса
    Виталий Артемьев, даже при перезапуске старый код, он потом через минут 20-30 обновляется..
    Написано
  • Почему перестало работать регулярное выражение в более новой версии mysql?

    @viktorross Автор вопроса
    Rsa97,
    select * from `class_fields` LEFT JOIN `class_fields_lang` on `class_fields`.`id` = `class_fields_lang`.`id` where `lang_id` = 'ru' and `active` = 1 and `quick_search` = 1 and ( `fieldset` REGEXP '\\b103,105,107\\b' or `fieldset` = 0 ) order by `order_no`;


    старое выражение всегда искало поля где хотя бы одна категория соответствовала, само поле fieldset может содержать до 200 таких категорий указанных через запятую
    Написано
  • Почему перестало работать регулярное выражение в более новой версии mysql?

    @viktorross Автор вопроса
    Rsa97, спасибо большое, но это работает не так, как работало старое выражение, в поле содержатся номера категорий типа 0, 101,103 это выражение раньше искало совпадения, теперь находит только одно со значением 0 и указывает на ошибку Warning: #1292 Truncated incorrect DOUBLE value: '101,103' не понимаю, что не так
    Написано
  • Как создавать, принимать и обрабатывать socket?

    @viktorross Автор вопроса
    SvizzZzy, спасибо большое))
    Написано
  • Как создавать, принимать и обрабатывать socket?

    @viktorross Автор вопроса
    SvizzZzy , а как вы смотрите на ratchet? Я на нем сделал чат, но что, если скажем 10 к соединений будет одновременно на сервере держаться, не ляжет ? Как нагрузка вообще у него? Больше, чем через node и socket.io?
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512, дело в том, что не совсем понимаю как это реализовать, вот смотрите как я сделал для примера

    в htaccess 2 правила в таком порядке

    # city subdomain
    RewriteCond %{HTTP_HOST} !www.site.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-_]+).site.com [NC]
    RewriteRule (.*) list.php?crt_city=%2 [NC,QSA]
    
    # https://city.site.com/
    RewriteCond %{HTTP_HOST} ^(?>www\.|)([\w-]+)\.site\.com$ [NC]
    RewriteRule ^user/$ st.php?crt_dealer=%1 [L,QSA]


    я ввожу адрес https://111.site.com, такого города нет, но есть пользователь, проверка осуществляется в файле list.php
    if(isset($_GET['crt_city']) && $_GET['crt_city'] && !$city) {
    						global $config_live_site;
    						header("Location:"."https://".$crt_city.".site.com"."/user/"); exit(0);
    					}


    бог с ним пускай страницы с пользователями будут иметь вид https://111.site.com/user/
    редирект после проверки происходит, но, я получаю ошибку "слишком много переадресаций", потому что на вот этом правиле происходит зацикливание

    # city subdomain
    RewriteCond %{HTTP_HOST} !www.site.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-_]+).site.com [NC]
    RewriteRule (.*) list.php?crt_city=%2 [NC,QSA]


    при использовании вот этого правила ошибки нет, но к сожалению не работают другие параметры, например: site.com/search/, site.com/q/ и т.д, т.е как надо работает только один адрес 111.site.com
    # https://city.site.com/search/
    #RewriteCond %{HTTP_HOST} ^(?>www\.|)([\w-]+)\.site\.com$ [NC]
    #RewriteRule ^$ list.php?crt_city=%1 [L,QSA]
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512, так и сделал уже, спасибо большое за помощь. Я еще хотел спросить, изначально я хотел реализовать все так чтобы субдомены имели отношение к 2 страницам прямо с главной страницы, без search/, т.е когда пользователь открывает страницу с субдоменом например https://user.site.com он попадает на свою страницу по правилу

    # https://city.site.com/
    RewriteCond %{HTTP_HOST} ^(?>www\.|)([\w-]+)\.site\.com$ [NC]
    RewriteRule ^$ st.php?crt_dealer=%1 [L,QSA]


    в случае ее существования, такая проверка есть, если страницы нет, то происходит редирект на 404, но образно говоря если существует город с названием user, то должно сработать правило

    # https://city.site.com/search/
    RewriteCond %{HTTP_HOST} ^(?>www\.|)([\w-]+)\.site\.com$ [NC]
    RewriteRule ^search/$ list.php?crt_city=%1 [L,QSA]


    но так чтобы без search, просто https://user.site.com

    понятно, что тогда нужно сделать проверку в одном из файлов, я сделал ее в st.php, если такого логина нет, то проверяется существование города и обычным редиректом в случае существования идет переброс, вопрос, куда должен идти этот переброс, чтобы открывался один и тот же субдомен, но с разными параметрами в htaccess, т. е уже не на st.php?crt_dealer=%1, а на list.php?crt_city=%1?

    Вообще не совсем понимаю куда смотреть, чтобы не использовать всякие дополнительные видимые параметры, хотелось бы чтобы было четко, либо user.site.ru открывает пользователя, либо город

    у меня изначально было 2 таких правила, но вместе понятно что они работать не будут никак

    # subdomain
    RewriteCond %{HTTP_HOST} !www.site.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-_]+).site.com [NC]
    RewriteRule (.*) st.php?crt_dealer=%2 [nc,qsa]
    
    # subdomain 2
    RewriteCond %{HTTP_HOST} !www.site.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-_]+).site.com [NC]
    RewriteRule (.*) list.php?crt_city=%2 [NC,QSA]
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512, вот сейчас собрал все строки, которые касаются list.php

    RewriteRule ^search/?$ list.php [nc,qsa]
    RewriteRule ^search/([^/]+)(?:/?([^/]*)/?([^/]*)/?)? /list.php?category_slug=$1&oblast_slug=$2&region_slug=$3 [L,QSA]
    
    RewriteCond %{REQUEST_URI} ^(.*)(/list.html)(.*)$ [NC]
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule (.*) ./list.php?$1 [QSA]


    все остальное для других страниц

    Если в этом правиле использовать вместо search например q, то все работает
    # https://city.site.com/search/
    RewriteCond %{HTTP_HOST} ^(?>www\.|)([\w-]+)\.site\.com$ [NC]
    RewriteRule ^search/$ list.php?crt_city=%1 [L,QSA]
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512, через var_dump и смотрел, crt_city нету, не понятно куда он теряется
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512, она вообще отсутствует почему-то в ссылках
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512, почему-то не работает..
    Написано
  • Почему срабатывает только первое правило?

    @viktorross Автор вопроса
    dodo512 , спасибо большое это работает, но есть нюанс, в первом случае нужно чтобы название субдомена, образно msk.site.com, подставлялся в параметр crt_city, чтобы в реальности получилось msk.site.com/search/?crt_city=msk, как это можно поправить?

    Образно говоря, человек вводит msk.site.com/search/, а на сервере открывается msk.site.com/search/?crt_city=msk
    Написано