Nette database, vybrani zaznamu (s JOINEM) a naloadovani do formulare

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

Caf,
mozna to bude piece of cake, ale jak byste resili nasledujici problem?

Mam dve tabulky:

  1. uzivatel
  2. rodic_to_dite

uzivatele muzou byt jak rodice, tak deti, tabulka rodic_to_dite pak spojuje jednotliveho rodice s N detmi

potrebuju naloadovat checkbox ‚deti‘ ve formulari, takze idealni struktura, kterou bych potreboval vratit by byla

<?php
array(
	'id' => 1,
	'typ' => 'rodic',
	'jmeno' => 'franta vomacka',
	'deti' => array('2', '3', '4') // 3 deti, zaskrtne se checkbox 'deti' v nette formu
	atd atd atd..
);
?>

Je toto nejak mozne vybrat rovnou? S temito db vrstvami nemam moc zkusenosti, proto prosim o postrceni.

Diky moc!

Editoval Ja (7. 5. 2014 15:49)

Ja
Člen | 260
+
0
-

Jeste doplnim, ze muj dotaz se tyka toho notorm zapisu.

Se starym dibi zapisem si poradim – to si tam ty deti hodim do $uzivatel[‚deti‘] separatnim dotazem.

trejjam
Backer | 65
+
0
-

Nešlo by navrhnout tabulku „opačně“? tzn:

id
otec-foreign(id):def NULL
matka-foreign(id):def NULL
jmeno
prijmeni

ziskat všechny děti můžeš pomocí related

Ja
Člen | 260
+
0
-

No, toto neni uplne univerzalni. Co kdyby tech vazeb bylo vic nez jen dve (matka/otec)…

trejjam
Backer | 65
+
0
-

Pokud je to konkrétní příklad, jak by jich mělo být více? Pokud je někdo děd čí bábi, tak se na ně dostaneš přes rodiče. Případně na sourozence přes rodiče atp.

Ja
Člen | 260
+
0
-

slo by to navrhnout opacne, ale ten projekt uz je ± postaven, takze tim bych si pridelal vic problemu, nez vyresil

tak jiny priklad, mate zpravu, muzete ji posilat nekolika uzivatelum – predpokladejme ted, ze se vybiraji skrze checkboxy, co uzivatel, to checkbox… takze mate tabulku zprav a tabulku prijemcu… pokud byste chteli tu zpravu editovat i s prijemcema, tak uz si nevystacime pouze s jinym navrzenim tabulky, ale bylo by dobry ty prijemce rovnou dodat do subarray

<?php
array(
	'zprava' => 'ahoj, jak se mas?',
	'prijemci' => array(1,2,3,4,5.....)
);
?>
trejjam
Backer | 65
+
0
-

Máš práva pro psaní a používání funkcí v MySQL? Pokud ano: MySQL explode()

potom bych použil JOIN, nebo podobné (případně to celé nacpat do procedury)