provazani tabulek InnoDB parent->child
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
ahoj mam dve tabulky
CREATE TABLE IF NOT EXISTS `firmy_KontaktniOsoby` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firmy_id` int(11) DEFAULT NULL,
`primarniOsoba` varchar(10) COLLATE utf8_czech_ci DEFAULT NULL,
`jmeno` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL,
`funkce` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL,
`titul` varchar(200) COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `firmy_id` (`firmy_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=12130 ;
ALTER TABLE `firmy_KontaktniOsoby`
ADD CONSTRAINT `firmy_kontaktniosoby_ibfk_1` FOREIGN KEY (`firmy_id`) REFERENCES `firmy` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;
CREATE TABLE IF NOT EXISTS `firmy_KontaktniOsoby_email` (
`firmy_KontaktniOsoby_id` int(11) DEFAULT NULL,
`email` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL,
KEY `firmy_KontaktniOsoby_id` (`firmy_KontaktniOsoby_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
ALTER TABLE `firmy_KontaktniOsoby_email`
ADD CONSTRAINT `firmy_kontaktniosoby_email_ibfk_1` FOREIGN KEY (`firmy_KontaktniOsoby_id`) REFERENCES `firmy_KontaktniOsoby` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;
pomoci
$r = $this->db->table(\Glb::$TABS['firmy_KontaktniOsoby'])
->where('firmy_id', $idFirmy)
->order('jmeno ASC');
selektuju seznam osob dane firmy
mohu se z tohoto seznamu nejak dostat k emailu dane osoby v tabulce „firmy_KontaktniOsoby_email“
- s4muel
- Člen | 92
skus takto:
foreach($r as $kontaktna_osoba) {
$vsetky_emaily_kontaktnej_osoby = $kontaktna_osoba->related('firmy_KontaktniOsoby_email');
}
viac info: dokumentacia
Editoval s4muel (26. 1. 2014 13:02)