Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypt oceny
Forum PHP.pl > Forum > Gotowe rozwiązania
yesir
Witam

Chcialbym zrobic skrypt (php + mysql) oceniania w skali 1 do 10. Chce zeby wybrana ocene dodalo do pola o nazwie 'ocena', czyli jak w polu o nzawie 'ocena' znajduje sie wartosc 210 i ktos zaglosuje na 7 to zeby w tym polu byla wartosc 217.

Narazie mam tyle i nie wiem co dalej:


Kod
<form method="POST" action="--WEBBOT-SELF--">



<p><select size="1" name="ocena">

    <option>1</option>

    <option>2</option>

    <option>3</option>

    <option>4</option>

    <option>5</option>

    <option>6</option>

    <option>7</option>

    <option>8</option>

    <option>9</option>

    <option>10</option>

  </select><input type="submit" value="Submit" name="glosu"></p>

</form>


Pozdrawiam
[Regis]
Samo <option> chyba nie wystarczy - musi byc jeszcze parametr Value... To jesli chodzi o sam formularz tylko.
Cudi
Musisz gdzieś trzymać dwie informacje:
:arrow: suma wszystkich ocen
:arrow: ilość głosów
Potem wystarczy wyciągnąć te dane, podzielić jedno przez drugie i zaokrąglić. Najpierw zdecyduj sie gdzie będziesz trzymał dane, bo bez tego ciężko rzucać przykładami.
yesir
Dane bede trzymal w bazie mysql o nazwie yesir, tablica bedzie miala nazwe ocena. Stworzylem wiec dwa pola o nazwie: suma_ocen i ilsoc_glosow.

I terez chcialbym wiedziec jak wyglada przykladowy skrypt dodajacy wybrana ocene do sumy ocen...
tiraeth
Załóżmy, że zmienna z której przesyłamy głosy to $glos
[sql:1:5c029ad428]
UPDATE oceny
SET suma_ocen+$glos, ilosc_glosow+1
[/sql:1:5c029ad428]

Nie jestem pewien czy to zadziała bo na szybko pisałem...


cYa!
uczen
Cytat
"]To jesli chodzi o sam formularz tylko.


hmmmmmm

Czy i Wy macie wrazenie ze autor tego posta ogladaj Dzien Swira questionmark.gif
Cudi
Pisane z palca, ale powinno działać:
[php:1:ace8f119aa]<?php
$_POST['ocena']; // ocena jaka przyznano

$r = mysql_query( "SELECT * FROM ocena" );
list( $suma, $ilosc ) = mysql_fetch_row( $r );

$suma += $_POST['ocena'];
$ilosc++;

mysql_query( "UPDATE ocena SET $suma, $ilosc" );

echo 'średnia ocen: ' . number_format( $suma / $ilosc, 2 ) . '<br />';
?>[/php:1:ace8f119aa]
Sh4dow
chcialbym zauwazyc ze przydalo by sie jeszcze w tabeli zrobic jakies id? chyba ze planowane jest zrobic tylko jedna ocene na stronie i nie zmieniac jej. Moze nie samo ID ale ogolnie jakis sposob identyfikacji obiektu ocenianego. do kolumn suma_ocen i suma_glosow dodal bym kolune obiekt (obrazek/news/artykul itp) oraz id (id obiektu oczywiscie)
wtedy w tym co napisał Cudi zmieniasz tylko 4 linie na tą:
[php:1:5537ac2b24]<?php
$r = mysql_query( "SELECT * FROM ocena WHERE obiekt='".$obiekt."' AND id='".$id." ' " );
?>[/php:1:5537ac2b24]
oczywiscie zmienne $obiek oraz $id moga byc pobrane z kazdego mozliwego zrodla. To jest tylko przyklad
yesir
Z tym id to sobie juz poradze, chcialem tylko prosty przyklad zobaczyc jak poradzic sobie z tym problemem.

Dziekuje za pomoc...

Pozdrawiam
yesir
Cytat
Pisane z palca, ale powinno działać:
[php:1:c17570db7e]<?php
$_POST['ocena']; // ocena jaka przyznano

$r = mysql_query( "SELECT * FROM ocena" );
list( $suma, $ilosc ) = mysql_fetch_row( $r );

$suma += $_POST['ocena'];
$ilosc++;

mysql_query( "UPDATE ocena SET $suma, $ilosc" );

echo 'średnia ocen: ' . number_format( $suma / $ilosc, 2 ) . '<br />';
?>[/php:1:c17570db7e]


Zastosowalm w/w skrypt, ale jednak dalej cos mi nie dziala....
zombie
ja bym dał tak:
[sql:1:5055eca98f]UPDATE ocena SET suma = suma + ".$_POST['ocena'].", ilosc = ilosc + 1[/sql:1:5055eca98f]
yesir
Czy ja tu musze cos zmienic aby ten skrypt zadzialal...

Kod
<form method="POST" action="--WEBBOT-SELF--">



<p><select size="1" name="ocena">

    <option>1</option>

    <option>2</option>

    <option>3</option>

    <option>4</option>

    <option>5</option>

    <option>6</option>

    <option>7</option>

    <option>8</option>

    <option>9</option>

    <option>10</option>

  </select><input type="submit" value="Submit" name="glosu"></p>

</form>
wojto
Nic nie musisz zmieniac.
Jesli nie ma atrybutu value, to option bierze za ten atrybut to co jest miedzy znacznikami option></option ...
jest to rownowazne temu: <option value=1>1</option>

mozesz takze uproscic sprawe i dac
[php:1:0862207a89]<?php

for($i=1;$i<=10;$i++)
echo "<option value=$i>$i</option>";
?>[/php:1:0862207a89]
yesir
Wszystkim dzieki, poradzilem sobie....
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-2024 Invision Power Services, Inc.