Ma to być tabela z danymi samochodów: marka, model, typ, silnik, kolor, typ_nadwozia, ABS, itd.
Tak pomyślałem że najlepiej do marki, modelu i typu zrobić osobne tabele i w tabeli głównej przechowywać tylko numery „id” co przyspieszy wyszukiwanie w bazie danej marki auta.
Nie wiem czy to najlepsze rozwiązanie.
Na razie tak zrobiłem i już mam problem z zapytaniem do bazy. Mam tak:
CREATE TABLE `dane` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_marka` int(11) NOT NULL, `id_model` int(11) NOT NULL, `id_typ` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin2 AUTO_INCREMENT=9 ; CREATE TABLE `marka` ( `id` int(11) NOT NULL AUTO_INCREMENT, `marka` varchar(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=latin2 AUTO_INCREMENT=10 ; CREATE TABLE `model` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_marka` int(11) NOT NULL, `model` varchar(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=latin2 AUTO_INCREMENT=10 ; CREATE TABLE `typ` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_model` int(11) NOT NULL, `typ` varchar(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=latin2 AUTO_INCREMENT=12 ;
<table width="200" cellspacing="0" cellpadding="0" border="1"> <?php $zapytanie = " SELECT marka, model, typ FROM dane, marka, model, typ WHERE dane.id_marka = marka.id and dane.id_model = model.id and dane.id_typ = typ.id "; echo" <tr> <td>".$wiersz['marka']."</td> <td>".$wiersz['model']."</td> <td>".$wiersz['typ']."</td> </tr> "; } ?> </table>
I teraz np.:
marka : Fiat
model: 126
typ: 126 p , 126 el
Jeśli mam tylko markę auta lub markę i model to nic mi nie wyświetli. Muszę mieś komplet przy takim zapytaniu czyli markę model i typ. Jeśli w tabeli głównej będzie tylko id marki i nie będzie modelu i typu, żeby też wyświetliło.
Nie wiem jak napisać poprawnie takie zapytanie. Proszę pomoc.