Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pozycja w TOP | określenie kryteriów
kielich
post
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Witam,

Mam pewien problem w kwestii teoretycznej , chciałem zrobić na stronie z filmami pozycje na której znajduje się film. Każdy film mam oceniany poprzez glosowanie

np.

film1 - 3,54
film2 - 4,06
film3 - 2,58


itd

I potrzebuje teraz zrobić tak :

- kiedy wchodzę w opis np. filmu1 widzę " Film znajduje się w TOP 2"
- kiedy wchodzę w opis np. filmu2 widzę " Film znajduje się w TOP 1"
- kiedy wchodzę w opis np. filmu3 widzę " Film znajduje się w TOP 3"

Całkowicie nie wiem jak to obrać ... (IMG:style_emoticons/default/sad.gif)

Z góry bardzo dziękuje

Czy ktoś wie jak to mogę zrobić ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


ok to taki przykład, który zobrazuje Ci jak to mniej więcej może działać, oczywiści musisz to dopasować do swojej sytuacji:
pobieramy TOP20 filmów, sortując je względem oceny od najwyższej do najniższej
  1. $top_movies = array();
  2. //pobieramy 20 najwyżej ocenionych filmow i wkładamy je do tablicy zachowując kolejność
  3. $sql = "SELECT movie_id, (vote_sum/vote_count) as rank FROM movies ORDER BY rank DESC";
  4. if($result = mysql_query($sql))
  5. {
  6. $top_movies[] = $row['movie_id'];
  7. }
  8. print_r($top_movies);


potem kiedy już sobie pobierzesz informacje o filmie i masz jego ID, to sprawdzasz czy jest w TOP20, jeśli tak to na jakiej pozycji:
  1. //sprawdzamy czy film jest w top 20
  2. if(in_array($movie_id, $top_movies))
  3. {
  4. $position = array_search($movie_id, $top_movies) +1; // dodajemy jeden bo w tablicy numeracja zaczyna się od 0
  5. }
  6. if($position <=3 )
  7. {
  8. echo "film znajduje się w TOP3";
  9. }elseif($position > 3 && $position <=10)
  10. {
  11. echo "film znajduje się w TOP10";
  12. }


Oczywiście żeby na każdej podstronie filmu, zbędnie nie wykonywać połączenia do pobierania top20, można zapisać je do sesji:
  1. $_SESSION['top_movies'] = array();
  2. $_SESSION['top_movies'] = $top_movies;


i wtedy już do funkcji in_array() i array_search() używasz tej zmiennej sesyjnej
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 16:59