IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: vytvoření vlastní ankety

Aktivity
Avatar
martinstejskal15:28.6.2014 10:39

zdravim, potřeboval bych se zeptat, jak dát na svůj web vlastní anketu kterou si vytvořím ze svých kódů, ale nějakej podrobnější návod co kam mám dát

 
Odpovědět
28.6.2014 10:39
Avatar
Odpovídá na martinstejskal15
Neaktivní uživatel:28.6.2014 10:58
  • V html vytvořit formulář a výpis výsledků
  • V php vytvořit stránku, která přijme data z formuláře a uloží je do databáze a druhou stránku, která ta data vybere a zobrazí je na stránce.
  • Připravit si databázi, kde budeš mít tabulku s hlasy a nejlépe i IP adresami, což bude nejjednodušší možnost, jak omezit duplicitu hlasů.

Myslím že o moc víc podrobněji to nikdo rozebírat nebude, nečekej kompletní hotový kód :)

Editováno 28.6.2014 11:00
Nahoru Odpovědět
28.6.2014 10:58
Neaktivní uživatelský účet
Avatar

Člen
Avatar
Odpovídá na martinstejskal15
:28.6.2014 11:03

Vytvoř si v databázi tabulku (pokud neumíš, upaluj se učit)

id[A_I] | ip | hlas

a vytvořil si script, do kterého nějak dostaneš (třeba pomocí $_GET), jakou možnost uživatel zvolil (tzn. do odkazu dáš třeba script.php?moz­nost=1)
potom pomocí návodu na SQL, co máš tady na devbooku pomocí příkazu

Db::query("INSERT INTO anketa VALUES('', ?, ?)", $_SERVER['REMOTE_ADDR'], $_GET['moznost']);

a potom pomocí tohoto scriptu vypočítal procenta:

$query = Db::queryAll('SELECT * FROM anketa');
foreach ($query as $result) {
      $celkem = $celkem + 1;
      if ($result['hlas'] == 1) {
            $moznost1 = $moznost1 + 1;
      } elseif ($result['hlas'] == 2) {
            $moznost2 = $moznost2 + 1;
      }
}
$procento = $celkem / 100;
$moznost1v = $moznost1 / $procento;
$moznost2v = $moznost2 / $procento;
echo('Pro možnost 1 volilo ' . $moznost1v . '% uživatelů, pro možnost 2 volilo ' . $moznost2v . '% uživatelů.');

Mělo by to fungovat, pokud ne, napiš :-)

//EDIT: IP ukládáš proto, že ji musíš ověřit při ukládání hlasu, jestli už v databázi hlas s touto IP není, aby nikdo nemohl hlasovat dvakrát... to už snad zvládneš :-)

Editováno 28.6.2014 11:07
 
Nahoru Odpovědět
28.6.2014 11:03
Avatar
Odpovídá na
martinstejskal15:28.6.2014 11:15

dělat s databází neumím a nevím jak se do ní dostat

 
Nahoru Odpovědět
28.6.2014 11:15
Avatar
Odpovídá na martinstejskal15
Neaktivní uživatel:28.6.2014 11:16

Bez toho to ale nepůjde, tady můžeš začít:
http://www.itnetwork.cz/…va-prostredi

Nahoru Odpovědět
28.6.2014 11:16
Neaktivní uživatelský účet
Avatar

Člen
Avatar
Odpovídá na martinstejskal15
:28.6.2014 11:18

V tom případě začni zde: http://www.itnetwork.cz/…tecniky-uvod
Začátky jsou velmi jednoduché, stačí ti, abys měl databázi a znalost základních příkazů jako INSERT a SELECT :)
Řekněme, že už databázi máš (dá ti ji každý freehosting)...
V PHP (když si stáhneš db.php, který je u druhého článku s databázemi) se připojíš pomocí

require_once('db.php');
Db::connect('server', 'název_databáze', 'uživatel', 'heslo');

Potom si pomocí PHPmyAdmin vytvoříš tabulku, jak už jsem psal...
No a pak už jenom v příkazech změnít "anketa" na název tabulky :)
Kdžytak ti můžu poradit hlasem, pokud chceš, napíš mi do PM svůj skype :)

 
Nahoru Odpovědět
28.6.2014 11:18
Avatar
martinstejskal15:28.6.2014 11:49

na web4u, jsem si vytvořil mysql databázi a dal jsem tomu jméno anketa, a teď čekám na schválení od serveru

 
Nahoru Odpovědět
28.6.2014 11:49
Avatar

Člen
Avatar
:28.6.2014 12:04

Jakmile ti to schválí, vytvoř si tabulku "anketa", kde zaškrtneš Auto increment (v novějších verzích PHPmyAdminu jenom A_I) u sloupce id. ID totiž bude určovat, co to je za položku...
Zbytek tabulky dej takový, jak jsem ti napsal v mém prvním příspěvku :)

 
Nahoru Odpovědět
28.6.2014 12:04
Avatar
martinstejskal15:28.6.2014 13:01

takhle to teď teda vypadá

 
Nahoru Odpovědět
28.6.2014 13:01
Avatar

Člen
Avatar
Odpovídá na martinstejskal15
:28.6.2014 14:40

takže přidej ještě dva sloupce...
IP nastav typ Varchar, ne Int (druhý řádek), protože Int je čistě pro čísla. hlas nech na Intu :) A každému nastav maximální délku, IP musí mít 15 (xxx.xxx.xxx.xxx), všechno ostatní je čistě na tobě. U ID ale nedoporučuju nižší než 3.

 
Nahoru Odpovědět
28.6.2014 14:40
Avatar
martinstejskal15:29.6.2014 19:18

sory za spoždění, měl jsem toho moc včera a dneska jsem to dodělával, takže mám vytvořit, tabulky a jak teda, že jak jsem se poslal ten obrázek tak aby jsem měl vedle celkem 3 sloupce teda?

 
Nahoru Odpovědět
29.6.2014 19:18
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.