• Как создать запрос на вывод по количеству отзывов?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    идем по шагам

    select * from magazin, otzyv where magazin.id = otzyv.magaz_id

    так как поле magaz_id уникально для двух таблиц можно упростить
    select * from magazin, otzyv where magazin.id = magaz_id

    В результате не будет информации о магазинах без отзывов. Но мы строим топ поэтому нам подойдет

    решим что будет в результате
    select magazin.name, count(*) as ocnt ... group by magaz_id order by ocnt

    Если нужны нулевки то вместо неявного left join из первого запроса
    пропишите соединение в явном виде
    select ... from magazin left outer join otzyv on magazin.id = magaz_id
    Ответ написан
    1 комментарий
  • Как создать запрос на вывод по количеству отзывов?

    Immortal_pony
    @Immortal_pony
    SELECT
        magazin.id, -- укажи явно таблицу в выборке, потому что у тебя теперь есть две таблицы с полем id
        magazin.name,  -- укажи явно таблицу в выборке, потому что у тебя теперь есть две таблицы с полем name
        gorod,
        COUNT(otziv.id) AS 'quantity' -- добавь количество отзывов в выборку. Это не обязательно, работать будет и без этого шага
    FROM 
        magazin
        LEFT JOIN otziv ON (otziv.magaz_id = magazin.id) -- присоедини таблицу
    WHERE 
        gorod=$gorods
    GROUP BY
        magazin.id  -- добавь группировку
    ORDER BY 
        COUNT(otziv.id) DESC -- поменяй сортировку
    LIMIT 
        20


    PS Я бы крайне не рекомендовал использовать транслитерированный русский в названии полей никогда.
    Ответ написан
    1 комментарий
  • Как убрать дубли страниц в выдаче поисковика?

    solotony
    @solotony
    покоряю пик Балмера
    1) поставь редиректы (или 403/404 нолучше редиректы)
    2) пропиши каноникал
    3) убери их из карты сайта

    жди (можно "просить" яндекс ускорять удаление)
    Ответ написан
    Комментировать
  • Как убрать дубли страниц в выдаче поисковика?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Всё зависит от технической части, движка, фреймворка.
    В простейшем случае текущий URL без домена и протокола находится в переменной $_SERVER['REQUEST_URI']

    Для https://sayt.ru/catalog/1/page=2/
    $_SERVER['REQUEST_URI'] = '/catalog/1/page=2/ ';

    Для https://sayt.ru/catalog/1/order=named/page=2/
    $_SERVER['REQUEST_URI'] = '/catalog/1/order=named/page=2/ ';


    То есть вашу проблему можно решить следующим образом: если мы видим в урл схему /catalog/ID/ то на основании этого формируем корректный канонический url.
    Сделать это можно, например регулярным выражением.
    Предполагается что в $rel_canonical мы получаем корректный url который далее вы выводите на странице.

    <?php
    $rel_canonical = '';
    if(preg_match('!^/catalog/([0-9]+)!si', $_SERVER['REQUEST_URI'], $out))
    {
        $rel_canonical = "https://sayt.ru/catalog/{$out[1]}/";
    }
    
    //$rel_canonical выводим на странице
    Ответ написан
    1 комментарий