Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + mysql ] Ocenianie
Forum PHP.pl > Forum > Przedszkole
pioch
Witam


Zamierzam zrobić system ocen do artykułów w skali od 1 do 10 .
Chciałbym wykorzystać php i mysql , by wyniki były zapisywane w bazie....


Ale juz na początku powstaje problem questionmark.gif


Zrobiłem formularz :

  1. <?php
  2. <form action="ocena.php" method="post">
  3. <input type="hidden" name="id" value="$id">
  4. <input type="submit" name="ocena" value="1">
  5. <input type="submit" name="ocena" value="2">
  6. <input type="submit" name="ocena" value="3">
  7. <input type="submit" name="ocena" value="4">
  8. <input type="submit" name="ocena" value="5">
  9. <input type="submit" name="ocena" value="6">
  10. <input type="submit" name="ocena" value="7">
  11. <input type="submit" name="ocena" value="8">
  12. <input type="submit" name="ocena" value="9">
  13. <input type="submit" name="ocena" value="10">
  14. </from>
  15. ?>



ale nie wiem jak dalej zacząść , aby do każdego artykułu liczyło średnia ocen , no i oczywiście wykorzystać ciasteczxko...
luki100011
Pobierasz wynik.
Zapisujesz w bazie danych. Przykładowa struktura bazy
id- int
id_art - id artykułu
ocena - ocena z formularza

Następnie pobierasz za pomocą mysql wynik:
  1. SELECT avg(ocena) FROM t_oceny WHERE id_art=id twojego artykułu
misiek172
roszke bez sensu struktura bazy, ponieważ jak coś było oceniane 20x to juz bedzie 20 wierszy w bazie,

najlepiej zrobic jeden wiersz dla jednego artykułu i przechowywać oceny w tablicy którą serializowąć przy wrzucaniu funkcje serialize(); i deserializowac przy pobieraniu funkcją unserialize();

lub oddzielać oceny średnikami i potem tylko użyć funkcji explode();

a średnią przecierz można wyliczyć w skrypcie, nie trzeba do tego używać zapytania mySql
Cienki1980
Cytat(misiek172 @ 19.04.2007, 17:10:00 ) *
roszke bez sensu struktura bazy, ponieważ jak coś było oceniane 20x to juz bedzie 20 wierszy w bazie,

najlepiej zrobic jeden wiersz dla jednego artykułu i przechowywać oceny w tablicy którą serializowąć przy wrzucaniu funkcje serialize(); i deserializowac przy pobieraniu funkcją unserialize();

lub oddzielać oceny średnikami i potem tylko użyć funkcji explode();

a średnią przecierz można wyliczyć w skrypcie, nie trzeba do tego używać zapytania mySql

A ja uważam, że to dobre rozwiązanie.

Skoro może zrobić coś baza danych to lepiej niech to robi niż przetwarzać dane w PHP. A co do ilości rekordów w bazie danych ... to wole mieć ich 100.000 niż 100 zserializowanych.

Ja bym stawiał na bazę danych i autorowi wątku też to radzę .
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.