Сортировка фильмов по 2 вещам

Хей все нуждаются в помощи ia noob, когда дело доходит до php 🙁

В моей базе данных у меня есть таблица, называемая фильмами, и у меня есть 12 столбцов, но я использовал 2 столбца для сортировки моих фильмов и их называют год, а другой 1 imdb_rating

вот как я их сортирую

public function getRealMovies($lang=null, $p=null, $l=null, $sortby=null){ $movies = array(); if (($p) && ($l)){ $start = ($p-1)*$l; $limit = " LIMIT $start,$l"; } else { $limit = ''; } if (!$sortby || $sortby=='abc'){ $order = "ORDER BY title ASC"; } elseif ($sortby=='date'){ $order = "ORDER BY date_added DESC"; } elseif ($sortby=='imdb_rating'){ $order = "ORDER BY imdb_rating DESC"; } elseif ($sortby=='year'){ $order = "ORDER BY year DESC"; } $e = mysql_query("SELECT * FROM movies WHERE id IN (SELECT movie_id FROM movie_embeds) $order $limit") or die(mysql_error()); if (mysql_num_rows($e)>0){ $ids = array(); while($s = mysql_fetch_array($e)){ $movies[$s['id']] = $this->formatMovieData($s, $lang); $ids[] = $s['id']; } if (count($ids)){ $flags = $this->getFlags($ids); if (count($flags)){ foreach($movies as $movie_id => $val){ if (array_key_exists($movie_id,$flags)){ $movies[$movie_id]['languages'] = $flags[$movie_id]; } else { $movies[$movie_id]['languages'] = array(); } } } } } return $movies; } 

Можно ли отсортировать по 2 предметам, например

  } elseif ($sortby=='imdb_rating and year'){ $order = "ORDER BY imdb_rating and year DESC"; 

Я надеюсь, что кто-то может помочь

благодаря

Просто разделите столбцы запятыми:

 elseif($sortby == 'imdb_rating and year') { $order = 'ORDER BY `imbd_rating`, `year` DESC'; } 

Кроме того, если вы хотите заказать их по-разному (например, по году и затем по рейтингу), используйте:

 ORDER BY `year` DESC, `imdb_rating` ASC 

Также стоит отметить, что mysql_* теперь устарела. Было бы лучше использовать MySQLi или PDO .

Вы должны немного изменить синтаксис.

 "ORDER BY imdb_rating DESC, year DESC"; 

Заменить and с помощью простой запятой:

 ORDER BY imdb_rating DESC, year DESC 

Просто разделите колонки заказа запятой.

 $order = "ORDER BY imdb_rating, year DESC"; 

Вы должны обязательно подумать о том, чтобы использовать другое расширение MySQL, mysql_* устарел, используйте mysqli_* или PDO . Я предпочитаю PDO.