Selhání ref() funkce v MYSQL
- sppilka
- Člen | 37
Je možné aby nefungovalo ani $xxx->ref(‚user‘,‚id_student‘)?
ALTER TABLE `active_lesson`
ADD CONSTRAINT `active_lesson_ibfk_1` FOREIGN KEY (`id_lesson`) REFERENCES `lesson` (`id`),
ADD CONSTRAINT `active_lesson_ibfk_2` FOREIGN KEY (`id_student`) REFERENCES `user` (`id`);
Zkoušel jsem vše… cache, přejmenovat klíče, adt… a nic…
- sppilka
- Člen | 37
Toto téma je docela časté, ovšem jsem na něj nenašel lék…
No každopádně chyba je jasná prostě chci přes tabulku ACTIVE_LESSON:
CREATE TABLE IF NOT EXISTS `active_lesson` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_lesson` int(11) NOT NULL,
`id_student` int(11) NOT NULL,
`student_name` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`email` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`is_payed` int(4) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_lesson` (`id_lesson`),
KEY `id_student` (`id_student`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=103 ;
ALTER TABLE `active_lesson`
ADD CONSTRAINT `active_lesson_ibfk_1` FOREIGN KEY (`id_lesson`) REFERENCES `lesson` (`id`),
ADD CONSTRAINT `active_lesson_ibfk_2` FOREIGN KEY (`id_student`) REFERENCES `user` (`id`);
Chci si vzít informace které jsou zde LESSON:
CREATE TABLE IF NOT EXISTS `lesson` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`teacher_id` int(11) NOT NULL,
`pay_tax` int(11) NOT NULL,
`room_id` int(11) NOT NULL,
`start_date` date NOT NULL,
`start_hour` int(11) NOT NULL,
`start_minute` int(11) NOT NULL,
`week_day` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`type_of_lesson` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`repeating` int(11) NOT NULL,
`take_lesson` int(11) NOT NULL,
`howlong` int(11) NOT NULL,
`capacity` int(11) NOT NULL,
`usage_capacity` int(11) NOT NULL,
`dificulty` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`uni` varchar(255) COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `teacher_id` (`teacher_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=28 ;
ALTER TABLE `lesson`
ADD CONSTRAINT `lesson_ibfk_3` FOREIGN KEY (`teacher_id`) REFERENCES `user` (`id`);
A také v USER:
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) COLLATE utf8_czech_ci NOT NULL,
`password` char(128) COLLATE utf8_czech_ci NOT NULL,
`name` varchar(30) COLLATE utf8_czech_ci NOT NULL,
`role` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`email` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`facebook` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`twitter` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`icq` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`is_allowed` tinyint(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=19 ;
PDOException: No reference found for $active_lesson->user
Když cizím klíčem chci se spojit s lesson jako $ctive_lesson->lesson->name funguje to, ale $active_lesson->user->name nejde… jak jsme říkal zkusil jsem i ref(‚user‘,‚id_student‘) ale toto také nefunguje…
Pro více info kdyby si potřeboval, rád zašlu, budu kontrolovat
Díky
- sppilka
- Člen | 37
No začal sem s nette asi před měsícem… moc se v tom neorientuji zatím, ale nečekal, že když se zeptám na foru pro začátečníky, tak mi řeknou že sem matla… no to je fuk dík za info zkusím to opravit…
edit: Tak jsem to opravil měl si pravdu s tou verzí… neboj polepším se :)
Editoval sppilka (26. 8. 2012 22:50)