Služby |
• Guestbook kniha návštěv
pro každého • MailForm zasílání
výsledků formulářů na e-mail
|
|
|
Hodnocení článku
Máte na stránce spoustu článků? A chcete vědět, jak moc se
líbí čtenářům? Tak si v PHP udělejte hodnocení článků. Dnes si
ukážeme, jak tento jednoduchý skript
vytvořit. Nejdříve si vytvoříme skript, který nám
vytvoří tabulku, do které budeme zapisovat
hodnocení:
vytvor.php
<? MySQL_Connect("SERVER", "JMENO",
"HESLO"); MySQL_Select_DB("DB"); MySQL_Query("CREATE TABLE
hodnot (ID INT not null , Celek INT not null , Pocet INT not null ,
PRIMARY KEY (ID));"); MySQL_Close(); ?>
Tato tabulka má 3 buňky. První je ID - do
této buňky budeme ukládat ID článku (každý článek má jedinečné
ID). Další je Celek. Do té si uložíme součet všech známek a
vydělíme jej poslední buňkou, do které ukládáme počet lidí, kteří už
hlasovali. Tak dostaneme průměrnou známku. Dále si vytvoříme hlavní
skript, který se nám postará o zápis do
tabulky:
hodnot.php
<? require("opendb.php");
if($znamka=='1'): $pricti='1'; elseif($znamka='2'): $pricti='2'; elseif($znamka='3'): $pricti='3'; elseif($znamka='4'): $pricti='4'; else: $pricti='5'; endif;
mysql_query("update
hodnot set celek=celek+$pricti where
id=$ID"); mysql_query("update hodnot set pocet=pocet+1 where
id=$ID"); MySQL_Close(); Header("location:
$HTTP_REFERER"); ?>
Tento skript se
nejdříve připojí k databázi (přidáním souboru opendb.php), poté
zkontroluje jakou známkou nám čtenář ohodnotil článek a podle toho
přiřadí proměnné $pricti hodnotu, jakou máme přičíst do databáze.
Potom následuje část, kdy se přičte do buňky Celek hodnota 1-5
(podle toho, jaká byla známka) a nakonec se do buňky Pocet přidá o 1
více, protože hlasovalo o 1 uživatele více. Úplně nakonec se skript
vrátí zpět, kde podá výsledek: výslednou známku a počet lidí, kteří
už hlasovali.
Nyní nám zbývá jen skript, který vložíme do každé stránky, kterou
chceme hodnotit:
<? $ID='1'; ?> Hodnoťte jako
ve škole:<BR> <A HREF="hodnot.php?ID=<? echo "$ID";
?>&znamka=1">1</A> | <A
HREF="hodnot.php?ID=<? echo "$ID";
?>&znamka=2">2</A> | <A
HREF="hodnot.php?ID=<? echo "$ID";
?>&znamka=3">3</A> | <A
HREF="hodnot.php?ID=<? echo "$ID";
?>&znamka=4">4</A> | <A
HREF="hodnot.php?ID=<? echo "$ID";
?>&znamka=5">5</A>
<BR><? require("opendb.php"); $vysledek =
MySQL_Query("SELECT * FROM hodnot WHERE ID=$ID"); $zaznam =
MySQL_Fetch_Array($vysledek); $prvni=$zaznam["Celek"]; $druhe=$zaznam["Pocet"]; @$prumer=$prvni/$druhe; if(!$prumer): echo
"Tento článek ještě nebyl ohodnocen."; else: echo "Výsledná
známka: $prumer"; echo "<BR>"; echo "Hlasováno bylo:
"; echo "$druhe".
"x"; endif; ?>
Na začátku skriptu
musíte přiřadit proměnné $ID přiřadit vždy jiné číslo (podle čísla
článku). Takže například 3. článek bude mít hodnotu proměnné
$ID='3'. Následují odkazy na skript hodnot.php?ID=id
článku&známka, kterou zadal čtenář. Poté se připojíme k
databázi, vybereme pouze jeden řádek z tabulky, podle hodnoty
proměnné $ID. Do proměnné $prvni si přiřadíme celkový součet
známek, jenž byly zadány a do proměnné $druhe přiřadíme počet
hlasů. Dále zkusíme spočítat průměr. Pokud to nejde, tzn., že
dělíme nulou, necháme vypsat, že článek ještě nebyl ohodnocen.
Pokud to jde, vypíšeme výslednou známku a počet hlasů.
A
úplně nakonec skript, kterým se přpojujeme k
databázi:
opendb.php
<? MySQL_Connect("SERVER", "JMENO",
"HESLO"); MySQL_Select_DB("DB"); ?>
Jo
a ještě jsem zapomněl jednu věc. Musíte si vždy, když máte ový
článek přidat nové ID do tabulky. To se dělá touto HTML stránkou,
která je obsloužena skriptem
obsluha.php:
pridej.html
<HTML> <HEAD> <TITLE>Přidání
ID článku</TITLE> </HEAD> <BODY> <FORM
ACTION="obsluha.php" METHOD="get"> Do políčka napište ID
článku, které chcete vložit: <INPUT TYPE="text"
NAME="ID"><INPUT TYPE="submit" VALUE="Vložit
ID"> </FORM> </BODY> </HTML>
A
teď ta obsluha:
obsluha.php
<?
require("opendb.php"); MySQL_Query("INSERT INTO hodnot
VALUES('$ID', '',
'');"); MySQL_Close(); ?>
Nezapomeňte
vždy před hodnocením nového článku spustit stránku pridej.html a
vložit ID 1, pak 2,...
Autor: Jakub Honig, hoya@seznam.cz, informace a seznam
článků
• Vivenasobne
hlasovani?, Pavel Matoušek, 25.10.2002
8:37:32 • Re:
Vivenasobne hlasovani?, Jakub Honig, 25.10.2002
14:04:11
Přidat
komentář
| Poslední články ze stejné
rubriky |
• Jednoduchá Kniha
návštev v PHP bez MySQL • Seznamka v PHP a
MySQL (4.) • Seznamka v PHP a
MySQL (3.) • Seznamka v PHP a
MySQL (2.) • Seznamka v PHP a
MySQL (1.)
| |
Provozovatel:
Poslední články |
|
|
|
Hodnocení článku |
Stav:
1 Počet: 3 |
|
Nový redaktor |
Chcete psát články pro PC Svět či
se stát redaktorem?
Články honorovány! Informace zde
|
|
|