PHP заказ по кликам в WHILE - PullRequest
       18

PHP заказ по кликам в WHILE

0 голосов
/ 11 ноября 2018

Я пытаюсь сделать заказ от большого количества кликов до более низкого, и я немного растерялся, поэтому я решил задать вопрос здесь.

Мой код:

$stmt = $db->query("SELECT DISTINCT `country` FROM `entries` ORDER by `id` ASC");
if ($stmt->rowCount() > 0) {
    while ($row = $stmt->fetch()) {
        $clicks = $db->query("SELECT `id` FROM `entries` WHERE `country` LIKE '{$row['country']}'")->rowCount();
        $conversations = $db->query("SELECT `id` FROM `conversations` WHERE `country` LIKE '{$row['country']}' AND `link_id` = '{$id}'")->rowCount();
    }

Я хочу, чтобы foreach давал мне результаты от самого высокого счета $clicks до самого низкого.

Есть идеи, что я могу сделать?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

поместите число clicks в массив, как показано ниже:

 $clicks[] = $db->query("SELECT `id` FROM `entries` WHERE `country` LIKE '{$row['country']}'")->rowCount();

тогда вы можете просто отсортировать массив по rsort php функции, как показано ниже:

echo rsort($clicks);
0 голосов
/ 11 ноября 2018

Вы можете выполнить этот запрос полностью в SQL с помощью чего-то подобного (в зависимости от диалекта SQL):

$countries = $db->query("SELECT `country`, count(1) AS clicks FROM `entries` GROUP BY `country` ORDER BY clicks DESC");
foreach ($countries as $country) {
    echo "${country['country']} has ${country['clicks']} clicks. ";
}
...