2017-02-22 21 views
0

Я пытаюсь создать основную систему комментариев, я был успешным, но у меня есть проблема прямо сейчас.PHP Like System/«Most Liked» (Need for logic)

Я не могу перечислить «больше всего понравился» комментарии и не имеют представления о том, как может И.

Мой голосов база показывает, как что:

voteid | value  | entryid | userid 
25  | like  | 257  | 17 
24  | like  | 257  | 17 
23  | unlike | 257  | 18 

создать новый как с этим кодом:

$vote = $connect->prepare("INSERT INTO votes (entryid, userid, value) VALUES (:entryid, :userid, :value)"); 
    $vote->bindParam(':entryid', $entryid); 
    $vote->bindParam(':userid', $userid); 
    $vote->bindParam(':value', $value); 
    $vote->execute(); 

И мой вопрос.

Что мне нужно SQL-запрос?

Я пробовал так:

$bestliked = $connect->prepare("SELECT * FROM votes"); 
    $best = $bestliked->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_COLUMN, 2); 

Но я не могу перечислить массив, которые имеют наиболее подмассив. Кажется только, что;

[1] => Array 
    (
     [0] => 8 
     [1] => 2 
     [2] => 3 
     [3] => 4 
     [4] => 5 
     [5] => 6 
     [6] => 7 
     [7] => 9 
     [8] => 10 
     [9] => 11 
     [10] => 12 
     [11] => 13 
     [12] => 14 
     [13] => 15 
    ) 

[2] => Array 
    (
     [0] => 16 
    ) 

[3] => Array 
    (
     [0] => 17 
    ) 

Спасибо всем!

+0

это поможет вам начать 'SELECT COUNT (voteid) AS любит, EntryID WHERE значение = 'как' GROUP BY entryid' – cmorrissey

+0

@ cmorrissey Этот код только не имеет сортировки, но я добавляю «ORDER BY любит DESC». Это прекрасно работает прямо сейчас. Спасибо огромное! –

ответ

1

Вы могли бы попытаться суммировать количество групп и сортировать его по убыванию:

Select *,count(*) as sum group by entryid where value='like' order by sum desc