Założmy że mamy dwie tabele
przy_film
CREATE TABLE IF NOT EXISTS `przy_film` ( `id_film` int(11) NOT NULL AUTO_INCREMENT, `tytul` varchar(80) character SET utf8 collate utf8_polish_ci NOT NULL, PRIMARY KEY (`id_film`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=203 ;
prz_gatunek
CREATE TABLE IF NOT EXISTS `przy_gatunek` ( `id_gatunek` int(11) NOT NULL AUTO_INCREMENT, `gatunek` varchar(30) character SET utf8 collate utf8_polish_ci NOT NULL, PRIMARY KEY (`id_gatunek`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
przy_film_has_przy_gatunek
CREATE TABLE IF NOT EXISTS `przy_film_has_przy_gatunek` ( `id_film` int(11) NOT NULL, `id_gatunek` int(11) NOT NULL, PRIMARY KEY (`id_film`,`id_gatunek`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8
Każdemu filmowi przyporządkowany jest dokladnie jeden gatunek - jeden gatunek może być przyporządkowany wielu filmom - RELACJA 1:n
dla tabeli przy_film_has_przy_gatunek rekordy wyglądaj następująco
id_film/id_gatunku
1, 4
2, 4
3, 1
4, 2
5, 3
O ile w wypadku wyświetlania w formularzu rozwijanej listy z gatunkami wszystko jest OK to nie potrafie uporać się z zapisem do bazy.
Mała Legenda:
$aDBC - ustanawia połączenie do bazy
$SQL - zmienna przechowuje zapytanie SQL
FieldByName(); - pobiera rekordy z bazy
ExecSQL($SQL); - wykonuje zapytanie do bazy SQL
Next(); - zwraca kolejne rekordy
zapytanie SQL zostalo przerobione z zupełnie innego przykladu, a zmienne dostosowane do moich potrzeb...
Formularz wynik pliku php
plik php tworzący formularz
[php]Gatunek