Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Zdravím, tento týden si v minisoutěži o placku Machr na PHP (s majestátním slonem) a samolepky zkusíme naprogramovat anketu. Jak vypadá anketa asi všichni tušíte, takže není třeba vysvětlovat a ukázka výstupu je přiložena v obrázcích. Snažte se o objektovou aplikaci a k ukládání výsledků použijte MySQL databázi. Autor nejlepší ankety získává placku Machr na PHP a samolepky. Čas si dejme do neděle 11.8. do 15:00.

Odpovědět 5.8.2013 10:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Abych šel hledat heslo od účtu na blueboard :D

 
Nahoru Odpovědět  +1 5.8.2013 18:35
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

tak, já tu svoji poslal :)
a není z blueboardu :P

 
Nahoru Odpovědět 6.8.2013 19:57
Avatar
Odpovídá na Daniel Vítek
Michal Žůrek (misaz):

ani ty už ji zde nezveřejníš?

Nahoru Odpovědět 6.8.2013 20:03
Nesnáším {}, proto se jim vyhýbám.
Avatar
Martin Konečný (pavelco1998):

Ahoj,

něco jsem zkusil za cca 2 hodiny sepsat. Nejsem si ale jistý, zda je správný návrh tříd Poll a PollContainer.

Třídy:

Database.php
http://www.itnetwork.cz/dev-lighter/167

PollContainer.php
http://www.itnetwork.cz/dev-lighter/168

Poll.php
http://www.itnetwork.cz/dev-lighter/169

Stránky:
index.php
http://www.itnetwork.cz/dev-lighter/163

overview.php
http://www.itnetwork.cz/dev-lighter/165

create.php
http://www.itnetwork.cz/dev-lighter/164

vote.php
http://www.itnetwork.cz/dev-lighter/166

Ukázka:
http://konecny.php5.cz/…k_poll/poll/

Poznámky:

  1. Pokud třídě Poll předáme parametr (ID ankety), automaticky vyhledá její informace a uloží je. Zároveň uloží, zda anketa s daným ID existuje.
  2. Pomocí magické metody __get() se hodnoty získávají z pole Poll::$data.
  3. Metoda Poll::getForm() vrací HTML formuláře včetně JS kódu na zpracování. Programátor může parametrem určit, aby se JS nevypsalo (v případě, že by si chtěl napsat vlastní script). Také může určit hodnotu atributu action pro formulář.
  4. Metoda Poll::getAnswer­Percentually() je závislá na metodě Poll::getAnswer­sPercentually(), což zřejmě není nejvhodnější řešení.
  5. Každá odpověď má svůj barvený pruh. Nedoporučuji nastavovat pruh na #ffffff. :-)
  6. Doufám, že bude větší účast než na poslední soutěži.
 
Nahoru Odpovědět  +1 7.8.2013 12:29
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Dorazily ke mne výsledky od Martin Konečný (pavelco1998) a Daniel Vítek, takže prázdninová účast pokračuje :)

pavelco: Hezký objektový kód, máš tam dokonce i vlastní výjimky a PHPDoc. Vylepšit by šlo už asi jen oddělení logiky od HTML výstupu, zkrátka placka je tvoje :) Adresu prosím pošli x do zpráv.

Dan: Chválím objektový kód, nicméně je tam poměrně dost nesrovnalostí. Měl bys používat PDO, ovladač MySQL je zastaralý a bude z PHP odebrán. Když už ho používáš, je třeba ošetřovat funkcí mysql_real_es­cape_string přímo v dotazech, nestačí ošetřit jen pár proměnných co přišly z getu. Metody se v PHP píší camelCasem, třída Funkce je trochu zavádějící název :)

Nahoru Odpovědět 11.8.2013 15:13
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Daniel Vítek:

si už hodně dlouho říkám, že bych se na PDO měl podívat, vždycky kouknu na kousíček tutoriálu a utíkám pryč protože se mi to nechce učit :D

 
Nahoru Odpovědět  +1 11.8.2013 15:32
Avatar
Michal Žůrek (misaz):

Ahoj, tak já jsem se chtěl taky zúčastnit. Jenže jsme v pátek byli pryč a jen náhodou jsme měli přespat do soboty, ona náhoda se však zvrtla natolik že jsem se teprve teď vrátil domů... Nicméně mě tento machr natolik zaujal že ho skusím dodělat do středy (pak zase jedu pryč a tentokrát plánovaně do neděle). Ankety udělám jak v PHP tak i javě protože se chci naučit v javě pracovat s databázemi.

Nahoru Odpovědět 11.8.2013 17:05
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

PDO je mnohem pohodlnější než původní ovladač MySQL a umí toho víc než většina ORM frameworků.

Nahoru Odpovědět  +1 11.8.2013 17:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 10 zpráv z 10.