Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] skrypt oceny zdjec
Forum PHP.pl > Forum > Przedszkole
kosmic
a więc chcę dodać w swojej galerii mozliwość oceny zdjęć, no i przeglądałem posty i ogólnie mam już wstepny pomysł... tylko czy dobry questionmark.gif

a wiec dodam do bazy tabele ocena, i wniej pole id, id_zdj, ocen, suma_cen

no i wiadomo, formularz który w którym bedziemy wybierac ocene od 1-5....

ale nie bardzo wiem jak zrobic zapytanie, które bedzie, tak jakby tworzyło sume wszystkich ocen, bo z ilością myśle ze sobie poradze...

czy np. jak wybiore powiedzmy 4, to jesli pobiore powiedzmy wartosc z bazy i dodam do niej to i zapisze sowrotem w tym samym polu to bedzie działac questionmark.gif

aha, no i jak zrobic, zeby np. uzytkownik nie mogł dwa razy oceniac... to znaczy jak teraz ocenie, to jak wejde w ocenianie, to bede mial komunikat ze juz oceniłem to zdjecie questionmark.gif
marcio
Co do ostatniego to zapisuj ip dodajacego ocene albo wysylaj cookie i sprawdzaj czy jyz bylo takie ip albo czy jest cookie albo najlepiej zrob obydwa
Daimos
dodaj do tabeli kolumne IP, wywal sume ocen i ilosc
id, id_zdj, ip

w tabeli ze zdjeciami, zrob pola do kazdego zdjecia:
"suma_ocen" - ktore bedziesz uzupelnial przy kazdym glosowaniu
"ilosc_ocen" - wiadomo, ilosc osob, ktore glosowalo

pierwsza tabela "oceny" bedzie tylko do blokowania IP osob, ktore juz glosowaly na dane zdjecie
reszte mozesz zmieniac w tabeli ze zdjeciami

i np:
  1. <?
  2. $ocena = 5; //ocena jaka ktos wystawia
  3.  
  4. mysql_query("UPDATE zdjecia SET suma_ocen = suma_ocen+$ocena, ilosc_ocen = ilosc_ocen+1 
    WHERE id = 'IDZDJECIA' LIMIT 1;"
    );
  5. ?>
dadexix
hm... jeśli chcesz by jedna osoba mogła głosować na jedno foto.. to dla każdego głosu musisz mieć rekord w tabeli... albo... mieć rekord z ip i dodawać ipki... czyli: masz w bazie ip 127.0.0.1 to po zagłosowaniu w bazie zostaje 127.0.0.1i jeszcze dopisuje np. 1.12.1.1 czyli wychodzi 127.0.0.1|1.12.1.1 potem przez explode rodzielasz ip, i masz w tablicy ipki... tak samo z cookie;]


a co do ocen... jeśli chcesz dla każdego glosu jeden rekord... to masz pola z id fotki, wielkością głosu, czasem, ip glosującego i cookie potem tylko wyciągasz rekordy i obliczasz średnią prostym kodem
  1. <?php
  2. $zapytanie = mysql_query("select `ocena` from `tabela` where foto_id='".$id."'"); //zamiast id daesz id foty którą sprawdzasz
  3. $start = 0;
  4. $laczna_suma = 0;
  5. while($row = mysql_fetch_array($zapytanie)){
  6. $laczna_suma = $laczna_suma+$row['ocena'];
  7. $start++;
  8. }
  9. $srednia = $laczna_suma/$start;
  10. ?>

w średnia masz już średnią fotki


a jeśli chcesz dawać dla każdej foty jeden rekord.. każda fotka by miała wpisaną ilość głosowań i łączną sume ocen np. glosowań 5, suma 25... obliczasz średnią arytmetyczną(25/5) i dostajesz ocene łączną... czyli 5:P

Sposób nr.1 bardziej funkcjonalny sposób nr.2 chyba mniej zasoborzerny...

@salsa... buuu pierwszy byłeś:( <piwo> stawiam za to:)
kosmic
hmmm... ip osoby odwiedzajacej to chyba nie najlepszy pomysł, bo jesli ktos jest w sieci osiedlowej jak ja, to chyba inna osoba nie bedzie mogła juz dodac swojej ocey do zdjecia (z tej sieci oczywiscie) - chyba ze sie myle

wiec lepszym rozwiazaniem jest chyba ciacho... bo zostanie u potencjalengo oceniajacego.... chyba ze usunie cookie
nie wiem...

ale jakos to bede musial rozwizac....

tylko jeszcze nie wiem jak twrzyc ciacho takiej osoby oceniajacej...
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.