Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Jak zrobić proste ocenianie...
sottu
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 4.03.2010
Skąd: Bydgoszcz

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


Witam jak wyglądał by skrypt na proste ocenianie od 1-10 filmów w bazie? Napisał by ktoś taki prosty skrypt ?
tabele :
ocena

1.id_o
2.id_f
3.ocena

film:
1.id_f
2.tytuł

Z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




My pomagamy... Nie piszemy gotowce bo ktoś chce mieć skrypt. Chcesz zlecenie dać? To do działu odpowiedniego z takim ogłoszeniem, a nie tutaj. Pokaż co już masz sam zrobione.
Go to the top of the page
+Quote Post
sottu
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 4.03.2010
Skąd: Bydgoszcz

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


Faktycznie na łatwiznę chciałem pójść. Przepraszam za to.
Więc tak:
Wiem jak zrobić checkboxa z wyborem od 1-10 który wpisuje odpowiedź w tabelę i liczy użytkownika, później dzieli sumę ocen przez liczbę użytkowników i wyświetla ocenę. Tylko czy da się później zrobić jakieś zapytanie które sprawdzi jaka jest ocena i wstawi odpowiednią ilość gwiazdek obok oceny? Czy tak może wyglądać skrypt na ocenę do bazy ? czy to ma sens ?
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Powiem tak... Jeśli oceniać mają userzy to źle projektujesz tabelę ocen. Powinno być id_usera, id_filmu, ocena, by ładnie liczyło się średnią, by było można zablokować userowi wystawienie innej oceny temu samemu filmowi, by łatwo policzyć średnią, zliczyć ile osób oddało głos na film czy zobaczyć jakie filmy ocenił konkretny user, które ocenił na jaką ocenę czy inne duperelki (IMG:style_emoticons/default/smile.gif) To JAK rozwiążesz przydzielanie oceny filmowi od strony usera to już nieistotne. Może być radio, może być jakiś JS. Kwestia umiejętności kodowania. id_oceny jest kompletnie zbędne. Jeśli jednak chcesz wiedzieć kiedy dany user głosował to możesz jeszcze dorzucić timestamp z current timestamp wstawianym przy tworzeniu (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sottu
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 4.03.2010
Skąd: Bydgoszcz

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


Dziękuję bardzo za podpowiedź zobaczę co z tego wyjdzie
Go to the top of the page
+Quote Post
Kowol
post
Post #6





Grupa: Zarejestrowani
Postów: 23
Pomógł: 2
Dołączył: 12.03.2010

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


Coś takiego:
  1. <?
  2. $ocena = 2;
  3. $sql = new mysqli('localhost', 'root', '*********', 'baza');
  4. $id = $_GET['id']; //id filmu pobierane jest z paska adresu, zmienna ?id=
  5. /*
  6.   tutaj miejsce na jakas forme z ocenami
  7.   */
  8. $sql->query("INSERT INTO oceny VALUES (NULL, $id, '$ocena')"); // zmienna $ocena ma zawierac jakas ocene, mozesz dolozyc sobie jakas forme etc
  9. $count = $sql->query("SELECT count(id_o) FROM oceny WHERE id_f = $id")->fetch_array(); // zliczamy ilosc rekordow
  10. echo "Zaglosowales na film o id $id. Twoja ocena to $ocena<br> Aktualan liczba glosow w bazie to $count[0]";
  11. $sql->close;
  12. ?>


Zapytania sql:
  1. CREATE TABLE IF NOT EXISTS `filmy` (
  2. `id_f` int(11) NOT NULL AUTO_INCREMENT,
  3. `tytul` text NOT NULL,
  4. PRIMARY KEY (`id_f`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


  1. CREATE TABLE IF NOT EXISTS `oceny` (
  2. `id_o` int(11) NOT NULL AUTO_INCREMENT,
  3. `id_f` int(11) NOT NULL DEFAULT '0',
  4. `ocena` int(2) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id_o`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=118 ;


Coś takiego

Ten post edytował Kowol 13.03.2010, 14:30:57
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 - 08:37