yesir
11.01.2004, 15:40:09
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]
11.01.2004, 16:33:52
Samo <option> chyba nie wystarczy - musi byc jeszcze parametr Value... To jesli chodzi o sam formularz tylko.
Cudi
11.01.2004, 17:25:57
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
12.01.2004, 15:10:14
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
12.01.2004, 15:21:36
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
12.01.2004, 22:12:17
Cytat
"]To jesli chodzi o sam formularz tylko.
hmmmmmm
Czy i Wy macie wrazenie ze autor tego posta ogladaj Dzien Swira
Cudi
12.01.2004, 22:41:04
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
12.01.2004, 23:12:46
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
13.01.2004, 20:23:48
Z tym id to sobie juz poradze, chcialem tylko prosty przyklad zobaczyc jak poradzic sobie z tym problemem.
Dziekuje za pomoc...
Pozdrawiam
yesir
14.01.2004, 16:52:49
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
15.01.2004, 09:19:58
ja bym dał tak:
[sql:1:5055eca98f]UPDATE ocena SET suma = suma + ".$_POST['ocena'].", ilosc = ilosc + 1[/sql:1:5055eca98f]
yesir
18.01.2004, 12:50:04
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
18.01.2004, 13:43:41
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
20.01.2004, 21:11:20
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.