рейтинг и индекс за максимальную оценку у него = 10 за минимальную 0, есть кол-во отзывов, за максимальное кол-во 10 за минимальное 0, есть кол-во просмотров, аналогично, максимальное 5 минимальное 0, и вот сплюсовать все и отсортировать по этому
                  
                  
                  
                  
                  
                  Например:
                  
                  
                  Товар 1: Рейтинг 5 из 10, оценок 100, просмотров 10000 = 5 + 10 + 5 = 20
                  
                  
                  Товар 2: Рейтинг 10 из 10, оценок 50, просмотров 5000 = 10 + 5 + 2.5 = 17.5
                  
                  
                  
                  
                  
                   Сортируем по 17.5 и 20
                  
                  
                
$orders = DB::table('products') ->join('comments', 'products.id', '=', 'comment.product_id') ->orderByRaw('SUM(comments) * products.views DESC') ->get(); Что-то в таком духе
Обсуждают сегодня