У меня есть список серверов, и в первую очередь, я хочу, чтобы к серверу обращайтесь к большинству онлайн-пользователей,PHP mysql order by if this == this, then order by this, else order by this?
, но в случае, если есть сервер, который в настоящее время находится в разработке +, имеет наибольшее количество игроков онлайн сейчас , Я хочу игнорировать его.
В основном заказ от PLAYERS COUNT + status = доступен, но он не работает?
$query = $this->controller->db->fetch("argonite_servers", null, null, "server_status = 'Available', server_players");
И это мой метод:
public function fetch($table, array $criteria = null, $limit = null, $order = null)
{
// The query base
$query = "SELECT * FROM $table";
// Start checking
if ($criteria) {
$query .= ' WHERE ' . implode(' AND ', array_map(function($column) {
return "$column = ?";
}, array_keys($criteria)));
}
// limit
if ($limit)
{
$query .= " LIMIT ". $limit;
}
//order
if ($order)
{
$query .= " ORDER BY ".$order." DESC";
}
$check = $this->pdo->prepare($query) or die('An error has occurred with the following message:' . $query);
if ($criteria)
$check->execute(array_values($criteria));
else
$check->execute();
return $check;
}
Почему не он отображает все серверы которых доступны + имеет наибольшее количество игроков на вершине?
Прямо сейчас, моя таблица показывает это:
img http://gyazo.com/e30bd07841cdec90e6854c55baddaf9e.png;
Что я сделал не так?
Показать запрос, а не код. –
Запрос: «SELECT * FROM argonite_servers ORDER BY server_players, server_status =« Доступно »DESC« –