Několik polí a vícenásobný insert do databáze

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Proton
Člen | 12
+
0
-

Zdravím, mám dotaz, jak v Nette nejlíp udělat možnost vybrat několik polí a tato pole pak odeslat do databáze.

Typicky – možnosti do ankety.

Existuje na to nějaká čistá Nette cesta?

Nemůžu bohužel na nic přijít.

Hafran
Člen | 121
+
0
-

No zkus to napsat tak aby to šlo líp pochopit, jinak myslím, že ti nikdo neodpoví. :) Jak tu anketu chceš dělat, bude to formulář?
Nevidím úplně důvod proč by měla bejt anketa vícenásobnej insert – každá položka má obvykle true/false,ale jestli ho opravdu potřebuješ stačí obyčejný foreach s více insertama. ;) Nemyslím, že na to bude nějaká spešl Nette cesta. Až na pohodlnější zpracování formuláře v Nette.

Editoval Hafran (10. 12. 2012 9:26)

saimons
Člen | 293
+
0
-

Da se to napsat i jednim insertem jak Dibi tak Nette/Database podporuji multinasobny insert. Staci tam poslat pople poli array(array(), array()).

mildabre
Člen | 62
+
0
-

Pole je jiný název pro sloupec v tabulce – pokud to takhle myslíš. Potom by anketa vypadala tak, že jednotlivá anketní témata by byla reprezentována sloupcem v tabulce anketa datového typu enum (v MySQL) a jednotlivé volby v daném tématu by byly reprezentovány položkami enum sloupce. V databázové tabulce bych neukládal popis anketních témat ale jenom jejich klíče (např. Oblíbený PHP framework by měl třeba klíč ‚OPHPF‘)

Já bych to udělal tak, že bych uživatelům poslal formulář s radio buttony pro každé anketní téma. Popisky pro enum klíče bych umístil do samostatného konfiguračního PHP pole, kde by se každému klíči přiřadila popiska.

Klient by navolil jednotlivé varianty a protože by celá ankety byla v jednom řádku nejednalo by se o vícenásobný insert.

Nebo můžeš chtít anketní témata v průběhu času měnit a přidávat – potoom musíš mít dvě tabulky – v jedné anketní témata a v druhé varianty odpovědí na témata. Tato cesta bude asi korektnější, ale pracnější a kuchařka na tuto cestu už by přesáhla možnosti tohoto fóra. Chce to začít a zkusit to nějakým způsobem – podle tutoriálů apod… Časem na to přijdeš.