Diskuze: vytvoření vlastní ankety

HTML a CSS HTML a CSS vytvoření vlastní ankety American English version English version

Avatar
martinstejskal15:

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
Jiří Gracík
Redaktor
Avatar
Odpovídá na martinstejskal15
Jiří Gracík:
  • 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  +1 28.6.2014 10:58
Creating websites is awesome till you see the result in another browser ...
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na martinstejskal15
Michal Vašíček:

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
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Odpovídá na Michal Vašíček
martinstejskal15:

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
Jiří Gracík
Redaktor
Avatar
Nahoru Odpovědět 28.6.2014 11:16
Creating websites is awesome till you see the result in another browser ...
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na martinstejskal15
Michal Vašíček:

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
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
martinstejskal15:

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
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

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
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
martinstejskal15:

takhle to teď teda vypadá

 
Nahoru Odpovědět 28.6.2014 13:01
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na martinstejskal15
Michal Vašíček:

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
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
martinstejskal15:

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.