Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> top10, top10 filmow
huntercs
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 6.02.2005

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


Więc tak mam rekordy w tabeli:

Id Imie Nazwisko Adres Film Dni Naleznosci Data Nowy
1 imie nazwisko adres 1 1 1 data 1

chciałbym zrobić top 10 najczęściej wybieranych filmow, chciałem zrobic to jakoś w pętlach ale pewnie da się o wiele prościej...

film to id filmu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
gdaq
post
Post #2





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 25.12.2003
Skąd: Warszawa

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


Na jakiej podstawie oceniasz czestosc wypozyczenia filmu bo tutaj tego nie widze.
Poza tym jelsi dobrze rozumiem to w przedstawionej tabeli masz dane abonenta i wypozyczenia, tylko ze relacja miedzy tymi danymi powinna byc wiele do wielu, a nie jeden do wielu.

Gdaq
Go to the top of the page
+Quote Post
huntercs
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 6.02.2005

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


chodzi mi o to żeby:
zliczalo ile jest wywolan np. id=1 id=2.. i pozniej to sortowalo od najwiecej wywolan id filmu do najmiej limit 10
da sie to zrobic w 1 zapytaniu? (IMG:http://forum.php.pl/style_emoticons/default/tiredsmiley.gif)

Ten post edytował huntercs 24.02.2005, 09:57:32
Go to the top of the page
+Quote Post
Vertical
post
Post #4





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Po pierwsze zmieniłbym nieco strukturę bazy. Do:

Id | Imie | Nazwisko | Adres | Film | Dni | Naleznosci | Data | Nowy
1 | imie | nazwisko | adres | 1 | 1 | 1 | data | 1

...dodałbym jeszcze pole "ilosc_wybran (INT)"
Teraz wyjaśnię jak to ma działać. Po pierwsze użytkownik wybierze dany film klikając w link, żeby móc przesłać informacje o ID filmu metodą GET. Link wyglądałby tak:
  1. <a href = "./index.php?pobierz=$id_filmu&inna_zmienna=costam&inna_zmienna=cos_innego">Pobierz!</a>

...teraz skrypt sprawdzałby za pomocą if/then, czy ustawiony jest parametr "wybierz" w adresie strony. Jeśli jest, doda do pola ilosc_wybran 1 pobranie (+1):
  1. <?php
  2. if ( $_GET['pobierz'] )
  3. {
  4. $db = mysql_connect(&#092;"host\", \"user\", \"haslo\") or die(\"Nie mozna polaczyc sie z baza!\");
  5. mysql_select_db(&#092;"baza\", $db);
  6. mysql_query(&#092;"UPDATE tabela SET ilosc_wybran = ilosc_wybran+1 WHERE id = \". $_GET['pobierz'] .\"\");
  7. }
  8. ?>

...Następnie żeby wyświetlić Top 10 najczęściej wybieranych filmów, napisz:
  1. <?php
  2. $db = mysql_connect(&#092;"host\", \"user\", \"haslo\") or die(\"Nie mozna polaczyc sie z baza!\");
  3. mysql_select_db(&#092;"baza\", $db);
  4. $result = mysql_query(&#092;"SELECT DISTINCT * FROM tabela ORDER BY ilosc_wybran DESC LIMIT 10\");
  5. while( $row = mysql_fetch_array($result) )
  6. {
  7. echo (&#092;"$row[1]<br>\");
  8. }
  9. ?>

...wtedy skrypt wybierze pole "Imie" i posortuje malejąco według wartości INT w polu ilosc_wybran (ponieważ pobierając film użytkownik zwiększa wartość tego pola o 1)

PS. Jeszcze tego nie testowałem, więc jeśli jest w kodzie jakiś błąd to poprawcie
Go to the top of the page
+Quote Post
huntercs
post
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 6.02.2005

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


bez modyfikacji kodu zrobielm tak (może nietak pro ale jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

  1. <?php
  2. while($count<100)
  3. {
  4. $wykonaj=mysql_query(&#092;"SELECT * FROM $tabela_klienci WHERE film=$count\");
  5. $rows = mysql_num_rows($wykonaj);
  6. if($rows<>0)
  7. {
  8. $wykonaj2=mysql_query(&#092;"SELECT * FROM $tabela_filmy WHERE id=$count\");
  9. while($rows2 = mysql_fetch_array($wykonaj2))
  10. {
  11. $top10[$c]=$rows.&#092;" razy zostal wypozyczony film: \".$rows2['tytul'];
  12. $c++;
  13. }
  14. }
  15. $count++;
  16. }
  17. echo &#092;"<br>\";
  18. echo &#092;"TOP 10\";
  19. echo &#092;"<br>\";
  20. arsort($top10);
  21. reset($top10);
  22. $nr=1;
  23. while (list($key, $val) = each($top10)) {
  24.  echo &#092;"Nr.\".$nr.\" = $val<br>\";
  25.  $nr++;
  26. }
  27. ?>


tylko interesuje mnie jeszcze pobranie maxymalnej wartosci pola bo narazie jest do 100 ;]
  1. <?php
  2. $mysql=mysql_query(&#092;"SELECT MAX(id) FROM $table\");
  3. $show_max=mysql_fetch_row?($mysql);
  4. echo &#092;"MAXL:'.$show;
  5. ?>

jakoś tak?
Go to the top of the page
+Quote Post
Vertical
post
Post #6





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Prawie dobrze, tylko:
  1. <?php
  2. $mysql=mysql_query(&#092;"SELECT MAX(id) FROM $table\");
  3. $show_max=mysql_fetch_row($mysql);
  4. echo &#092;"MAXL:'. $show[0] .'\"; //za pomocą tablicy wybierasz, które pole z tabeli chcesz wyświetlić (w tym przypadku wyświetli ID filmu, bo pole ID jest pierwszym polem w tabel
    i)
  5. ?>


Ten post edytował Vertical 26.02.2005, 12:45:16
Go to the top of the page
+Quote Post

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: 23.08.2025 - 00:05