2013-07-30 3 views
-3

Хей все помогают немного помочь.Фильмы не сортируются

На моей странице фильмов я могу сортировать фильмы по 4 вещи, но только один, в то время

ABC 
Date Added 
Imdb Ratings 
Year 

Но я пытался сделать, это сортировать фильмы по 2 вещи на раз в год и IMDB Ratings, но это не будет работать ,

Не могли бы вы проверить, что вызывает ошибку

здесь является публичной код функции

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"; 
    } elseif ($sortby=='imdb_rating&year'){ 
     $order = "ORDER BY imdb_rating, 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; 
} 

А вот переписывания Роли

RewriteRule ^/?movies/(\d+)$ index.php?menu=movies&p=$1&sortby=abc&lang=en [L] 
RewriteRule ^/?movies/abc/(\d+)$ index.php?menu=movies&p=$1&sortby=abc&lang=en [L] 
RewriteRule ^/?movies/date/(\d+)$ index.php?menu=movies&p=$1&sortby=date&lang=en [L] 
RewriteRule ^/?movies/imdb_rating/(\d+)$ index.php?menu=movies&p=$1&sortby=imdb_rating&lang=en 
RewriteRule ^/?movies/year/(\d+)$ index.php?menu=movies&p=$1&sortby=year&lang=en 
RewriteRule ^/?movies/date index.php?menu=movies&sortby=date&lang=en 
RewriteRule ^/?movies/abc index.php?menu=movies&sortby=abc&lang=en 
RewriteRule ^/?movies/imdb_rating index.php?menu=movies&sortby=imdb_rating&lang=en 
RewriteRule ^/?movies/year index.php?menu=movies&sortby=year&lang=en 
RewriteRule ^/?movies/fav index.php?menu=movies&sortby=imdb_rating&year&lang=en 
RewriteRule ^/?movies index.php?menu=movies&lang=en [L] 
RewriteRule ^/?requests index.php?menu=requests&lang=en [L] 

А вот КНОПКИ

    <li{if $sortby eq 'abc'} class="current"{/if}><a href="{$baseurl}/{$routes.movies}/abc">{$lang.sorting_abc}</a></li> 
       <li{if $sortby eq 'date'} class="current"{/if}><a href="{$baseurl}/{$routes.movies}/date">{$lang.sorting_newest}</a></li> 
       <li{if $sortby eq 'imdb_rating'} class="current"{/if}><a href="{$baseurl}/{$routes.movies}/imdb_rating">{$lang.sorting_imdb}</a></li> 
       <li{if $sortby eq 'year'} class="current"{/if}><a href="{$baseurl}/{$routes.movies}/year">{$lang.released}</a></li> 
       <li{if $sortby eq 'imdb_rating&year'} class="current"{/if}><a href="{$baseurl}/{$routes.movies}/imdb_rating&year">Fav</a></li> 
      {else} 
       <li{if $sortby eq 'abc'} class="current"{/if}><a href="{$baseurl}/index.php?menu=movies&sortby=abc">{$lang.sorting_abc}</a></li> 
       <li{if $sortby eq 'date'} class="current"{/if}><a href="{$baseurl}/index.php?menu=movies&sortby=date">{$lang.sorting_newest}</a></li> 
       <li{if $sortby eq 'imdb_rating'} class="current"{/if}><a href="{$baseurl}/index.php?menu=movies&sortby=imdb_rating">{$lang.sorting_imdb}</a></li> 
       <li{if $sortby eq 'year'} class="current"{/if}><a href="{$baseurl}/index.php?menu=movies&sortby=year">{$lang.released}</a></li> 
       <li{if $sortby eq 'imdb_rating&year'} class="current"{/if}><a href="{$baseurl}/index.php?menu=movies&sortby=imdb_rating&year">Fav</a></li> 

Может ли один помочь, пожалуйста

спасибо :)

+1

Вы должны обновить свой старый [вопрос] (http://stackoverflow.com/questions/17920068/sorting-movies-by-2-things). –

+0

Корпус выключателя действительно существует –

+0

RewriteRule - это перезапись ROLE, а кнопка - botton, мне просто нужно было прокомментировать, что я рассмеялся :) это даже не простая ошибка орфографии, это RENAMING. В этом мире есть некоторые уникальные люди:> –

ответ

2

Вы используете условие elseif ($sortby=='imdb_rating&year') но &year новый ключ в запросе HTTP GET, другими словами $sortby имеет только значение 'imdb_rating' в этом случае.

Вы должны использовать другой разделитель, например:

elseif ($sortby=='imdb_rating_and_year') 

И изменение переписывания правил:

RewriteRule ^/?movies/fav index.php?menu=movies&sortby=imdb_rating&year&lang=en 

к этому:

RewriteRule ^/?movies/fav index.php?menu=movies&sortby=imdb_rating_and_year&lang=en 

и те же изменения в шаблоне.

Смежные вопросы