Akonato.eu :: Zobrazi� t�mu – Jednoduch� anketa v php

 
 FAQ  •  H�ada�
 •  Zoznam u��vate�ov  •
 U��vate�sk� skupiny
  •  Registr�cia
 •  Nastavenia  •  S�kromn� spr�vy 
•  Prihl�senie
Hodnosti  •  
IP Adresa  •  
RSS  •  
V�zenie  •  

© 2007 Akonato

Powered by phpBB
© 2001, 2002 phpBB Group

[ �as vygenerovania str�nky: 0.6 sek | 27 Dotazov ]

 Jednoduch� anketa v phpZobrazi� nasleduj�cu t�mu
Zobrazi� predch�dzaj�cu t�mu
AutorSpr�va
ujoPaneL
V.I.P

Zalo�en�: 28 Dec 2007
Pr�spevky: 21

Reputation: 0.4
349 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

ujoPaneL
V.I.P

Zalo�en�: 28 Dec 2007
Pr�spevky: 21

Reputation: 0.4
349 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

ujoPaneL
V.I.P

Zalo�en�: 28 Dec 2007
Pr�spevky: 21

Reputation: 0.4
349 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

santa
Expert

Zalo�en�: 29 Dec 2007
Pr�spevky: 58

Reputation: 1.2
23 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

santa
Expert

Zalo�en�: 29 Dec 2007
Pr�spevky: 58

Reputation: 1.2
23 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

santa
Expert

Zalo�en�: 29 Dec 2007
Pr�spevky: 58

Reputation: 1.2
23 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

santa
Expert

Zalo�en�: 29 Dec 2007
Pr�spevky: 58

Reputation: 1.2
23 PR Money

Kain
Webmaster

Zalo�en�: 27 Dec 2007
Pr�spevky: 99

Reputation: 1.3
1980 PR Money

Zaslal:
Sat Dec 29, 2007 1:08 pm

V tomto �l�nku si uk�eme ako vytvori� ve�mi jednoduch� �abl�nu pre ankety pomocou php. V�sledkom bude skript umo��uj�ci zad�vanie nov�ch ot�zok s r�znym po�tom odpoved� a tie� skript umo��uj�ci hlasovanie a prehliadanie v�sledkov. Z�kladom ankiet je samozrejme pr�stup do datab�zy MySQL kde si nasledovn�m sql pr�kazom vytvor�me anketov� tabu�ku:

CREATE TABLE `ankety` (`ID` TINYINT (3) UNSIGNED DEFAULT ‚0‘, `nazov` TEXT, `odpoved` VARCHAR (200), `pocet` INT (3) UNSIGNED DEFAULT ‚0‘)

Anketov� ot�zka sa bude uklada� len v prvom riadku v �om z�rove� je aj prv� odpove� a po�et respondentov. ID sa mus� vyp��a� pre v�etky riadky danej ot�zky rovnako. V podstate by sa ako ID dala pou�i� aj samotn� ot�zka ale s ��slom sa �ah�ie a r�chlej�ie pracuje.

Tak�e m�me tabu�ku teraz ako prida� ot�zku? Na to si nap�eme skript pridaj_ank.php :

Formul�r, ktor� sa zobraz� t�mto skriptom m� 10 pol��ok ale d� sa to zmeni� napr. funkciou v ktorej u��vate� zad� ko�ko bude ot�zok. Takto sa pr�zdne ot�zky do datab�zy nedostan� aj ke� vo formul�ri s�. Tak�e po zadan� ot�zky n�m e�te zost�va anketu zobrazi� a prirobi� hlasovanie. Najlep�ie to uvid�me v k�de:

No a je to. Tento skript�k n�m vyp�e tabu�ku, v nej v hornom riadku je ot�zka potom postupne nadol odpovede s po�tom hlasovan�. �ahko sa e�te d� s��ta� po�et hlasovan� a vyjadri� percentu�lne alebo ve�kos�ou nejak�ho obr�zku.

Drobn� nev�hoda je �e jeden u��vate� m��e hlasova� nieko�kokr�t za sebou. Toto sa d� odstr�ni� alebo kontrolovan�m IP ale t�m p�dom by sa musela prer�ba� cel� tabu�ka, resp. uklada� IP do druhej alebo jednoduch�m Java Scriptom �o po hlasovan� do�asne hlasovanie obmedz�.

PS: to �o treba dop��a� som pridal do code to �o tam nem� by� ale sl��i iba ako inform�cia som chcel da� �ervenou iba�e v code to nejde tak�e to kde je nap�san� (color=red) nje�o (/color) sl��i len ako inform�cia.PEACE

k�d:
pridaj.php

<?

[color=red]//najskor vyratame nove ID[/color]

$query = „SELECT MAX(ID) FROM ankety“;

$CnoveID = mysql_query($query)

  or die(„Query failed“);

$nvID = mysql_fetch_row($CnoveID);

$noveID=$nvID[0];

$noveID = $noveID+1; ?>

[color=red]//potom zobrazime formularik na pridanie otazky[/color]

<FORM METHOD=“POST“ ACTION=“pridaj_ank.php“>

<INPUT TYPE=“Hidden“ NAME=“send“ VALUE=“true“>

<TABLE BORDER=“1″ CELLSPACING=“0″ CELLPADDING=“4″ ALIGN=“CENTER“>

<TR>

<TD VALIGN=“TOP“><B>Otazka</B></TD>

<TD><TEXTAREA NAME=“otazka“ COLS=“50″ ROWS=“4″></TEXTAREA></TD>

</TR>

<? for ($i=1;$i<11;$i++) {

?>

<TR>

<TD><B>Odpoved <?echo $i;?>:</B></TD>

<TD><INPUT TYPE=“TEXT“ NAME=“odpoved<?echo $i;?>“ SIZE=“70″ MAXLENGHT=“150″></TD>

</TR>

<?}

?>

<TR>

<TD ALIGN=“CENTER“ COLSPAN=“2″><INPUT TYPE=“SUBMIT“ VALUE=“Pridat“></TD>

</TR>

</TABLE>

</FORM>

<?

[color=red]//no a ak bol formular odoslany naplnime tabulku[/color]

if ($_POST[send])

{

$query2 =“INSERT INTO ankety VALUES($noveID,’$_POST[otazka]‘,’$_POST[odpoved1]‘, 0)“;

@$sql = mysql_query(„$query2“);

for ($j=2;$j<11;$j++) {

$pomocka=“odpoved$j“;

if ($_POST[$pomocka] != „“ ) {

$query2 = „INSERT INTO ankety VALUES($noveID,’$_POST[otazka]‘,’$_POST[$pomocka]‘, 0)“;

@$sql = mysql_query(„$query2“);

}

} ?>

k�d:
anketa.php

<?

[color=red]//najskor zistime ci sa hlasovalo[/color]

$hlasuj = $HTTP_GET_VARS[‚h‘];

if ($hlasuj==1) {

[color=red]//ak ano zistime o ktoru anketu ide[/color]

$anketa=$HTTP_GET_VARS[‚id‘];

[color=red]//na ktoru odpoved sa kliklo[/color]

$odpoved=$HTTP_GET_VARS[‚o‘];

[color=red]//a zistime aktualny stav v db[/color]

$query2 = „SELECT * FROM ankety WHERE ID=$anketa“;

$result2 = mysql_query($query2)

or die(„Query failed“);

for ($j=1;$j<=$odpoved;$j++) {

$row2 = mysql_fetch_row($result2);

}

$teraz=$row2[3];

$ktory=$row2[2];

[color=red]//aktualnu hodnotu odpovede zvysime o 1[/color]

$teraz=$teraz+1;

[color=red]//a tabulku updatneme [/color]

$query3 = „UPDATE ankety SET pocet=$teraz WHERE ID=1 AND odpoved=’$ktory'“;

@$sql = mysql_query(„$query3“);

}

[color=red]//ak neprebehlo hlasovanie ale ak aj ano nacitame hodnoty podla ID tu je //zadavane rucne[/color]

$query = „SELECT * FROM ankety WHERE ID=1“;

$result = mysql_query($query)

or die(„Query failed“);

[color=red]// vytlacenie vysledkov v HTML[/color]

print „<table align=center width=550 cellspacing=1 callpadding=0>\n“;

if(@mysql_num_rows($result) > 0)

{

$row = mysql_fetch_row($result)

?>

<tr class=normal>

<td colspan=“2″>

<?echo $row[1]; ?></td>

</tr>

<tr class=normal>

<td> <a href=“anketa.php?h=1&id=1&o=1″ >

<?echo $row[2]; ?> </a></td>

<td> <?echo $row[3]; ?> </td>

</tr>

<?

[color=red]//i je orientacna premenna, ak je i jedna ide o prvu odpoved ak je vyssie //zodpoveda to riadku tabulky podla velkosti i[/color]

$i=2;

while ($row = mysql_fetch_row($result))

{

?>

<tr class=normal>

<td><a href=“anketa.php?h=1&id=1&o=<?echo $i;?>“ >

<?echo $row[2]; ?> </a> </td>

<td> <?echo $row[3]; ?> </td>

</tr>

<?

$i++;

}

}

print „</table>\n“;

?>

Zaslal:
Sat Dec 29, 2007 3:19 pm

Super tutorial dakujem…

Zaslal:
Sat Dec 29, 2007 7:11 pm

hehe neni za�

Kain nap�sal:
Super tutorial dakujem…
Zaslal:
Sat Dec 29, 2007 7:13 pm

fakt je to super rozp�san� tak toto mus� u� aj lama spravi�

Zaslal:
Sat Dec 29, 2007 7:16 pm

d�ky budem sa sna�i� robi� v�etky tutori�ly podobn�m sposobom

Zaslal:
Sat Dec 29, 2007 7:17 pm

Ok…tak dakujem u� vopred..

Zaslal:
Sat Dec 29, 2007 7:25 pm

ta to fajne bo neznam kuda to ide to do kompu? bo do dukomena seting?

Zaslal:
Sat Dec 29, 2007 7:28 pm

No tak tie kody si d� do .php s�borov a hod� na Ftp na nejak� hosting napr. hostuju.cz alebo webzdarma.cz ale potom platnen�..

Zaslal:
Sat Dec 29, 2007 8:44 pm

a to php kdze?ta to nem�m tu ani ftp nemam to co za fras?

Zaslal:
Sat Dec 29, 2007 9:01 pm

PHP je pr. jazyk ktor� sa pou��va k tvorbe webe…

Zaslal:
Sat Dec 29, 2007 9:35 pm

webe? taku neznam

Zaslal:
Sat Dec 29, 2007 9:42 pm

�o nezn� ?

Zaslal:
Sat Dec 29, 2007 9:45 pm

tu webu ja tak Kamilu – Aranku webu ne tu neznam

Zaslal:
Sat Dec 29, 2007 10:24 pm

no proste lama no �o ti m�m k tomu in� poveda�

Zobrazi� pr�spevky z predch�dzaj�cich:    

Zobrazi� nasleduj�cu t�mu
Zobrazi� predch�dzaj�cu t�mu
Nem��ete prid�va� nov� t�my do tohto f�ra.
Nem��ete odpoveda� na t�my v tomto f�re.
Nem��ete upravova� svoje pr�spevky v tomto f�re.
Nem��ete maza� svoje pr�spevky v tomto f�re.
Nem��ete hlasova� v tomto f�re.
 Prejdi na: