Skrypt pokaże wam jak zrobić bardzo atrakcyjne ocenianie artykułów z animowanymi gwiazdkami.
Pliki skryptu można pobrać tutaj [ Pobierz ]
Poniżej przedstawiam kod PHP do obsługi dodawania i wyświetlania ankiety oraz kod HTML do wyświetlenia , te rzeczy są również już gotowe w paczce.
KOD HTML do wyświetlenia ankiety:
Jak widać id, srednią i ilość głosów podajemy poprzez parametr FlashVars odpowiada on za początkowe wyświetlenie danych, oraz ustawienie ip do współpracy z php.
Maksymalna wartość średniej to 5, bo tyle jest gwiazdek
KOD SQL do stworzenia tabeli z rankingiem
id to id danego artykułu dla którego prowadzony jest ranking
CREATE TABLE `ranking` (
`id` int(11) NOT NULL,
`srednia` tinyint(4) NOT NULL,
`ilosc` bigint(20) NOT NULL,
`suma` bigint(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
KOD PHP do odbioru danych z flash i zaktualizowania wyników.
function lacz_bd()
{
$db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');
if (! $db)
return false;
$db->autocommit(TRUE);
return $db;
}
$db = lacz_bd();
$id = $_REQUEST['id'];
$glos = $_REQUEST['oddanyglos'];
$zapytanie = "select srednia, ilosc, suma from ranking where id='$id'";
$wynik = $db->query($zapytanie);
$wiersz = $wynik->fetch_assoc();
$suma = $wiersz['suma'];
$ilosc = $wiersz['ilosc'];
$srednia = $wiersz['srednia'];
if(empty($ilosc)){
$zapytanie = "insert ranking (id, srednia, ilosc, suma) values ('$id', '$glos','1','$glos')";
$srednia = $glos;
}else{
$suma = $suma + $glos;
$ilosc = $ilosc+1;
$srednia = $suma/$ilosc;
$srednia = round($srednia,0);
$zapytanie = "update ranking set ilosc='$ilosc', suma='$suma', srednia='$srednia' where id='$id'";
}
$wynik = $db->query($zapytanie);
print "&glos=$srednia&id_wpisu=$id";
?>
Listing
Ranga: Administrator serwisu Punktów: 0