Не работает ORDER BY + Дубли

Есть две таблицы:

Таблица prod с полями: id, name, reiting, cat

Таблица purchase с полями: type, status, data, cat

Пытаюсь получить данные из двух таблиц за один запрос и отсортировать по убыванию поля reiting:

function get_data($p1, $p2, $p3) {
    global $mysqliRead;
    $s = $mysqliRead->prepare('SELECT prod.name, prod.reiting, purchase.type FROM prod, purchase WHERE prod.cat=? AND purchase.cat=? AND purchase.status=? ORDER BY prod.reiting DESC');
    $s->bind_param('iii', $p1, $p2, $p3);
    $s->execute();
    $r = $s->get_result();
    $a = $r->fetch_all(MYSQLI_ASSOC);
    $r->free_result();
    $s->close();
    return $a;
}

$get_data = get_data($cat, $cat, $status);


foreach($get_data as $k) {
   echo $k['name'];
}

// Вывод
бананы
бананы
кокосы
кокосы
манго
манго

В итоге сталкиваюсь с двумя проблемами - это дублирование вывода в foreach (бананы, бананы, кокосы, кокосы, манго, манго) и не работает сортирвка ORDER BY reiting.

Как быть в данной ситуации и добиться недублированного вывода и сортировки???


Ответы (0 шт):