Posiadam dwie tabelki:
CREATE TABLE IF NOT EXISTS `zakwaterowania` ( `id` int(255) NOT NULL AUTO_INCREMENT, `nazwa` varchar(255) NOT NULL, PRIMARY KEY (`id`) )
W sumie 52 rekordy.
CREATE TABLE IF NOT EXISTS `hotel_l` ( `id` int(255) NOT NULL AUTO_INCREMENT, `id_oferta` int(255) NOT NULL, `id_hotel` int(255) NOT NULL, PRIMARY KEY (`id`) )
Oraz tabelka informująca o przypisaniu rodzaju zakwaterowania do oferty. 11 rekordów.
Wyciągam z nich dane za pomocą:
SELECT * FROM hotel_l RIGHT OUTER JOIN zakwaterowania ON (hotel_l.id_hotel = zakwaterowania.id)
Przy czym chciałbym wyświetlić 52 rekordy z nazwą zakwaterowania w formie checkboxów wraz z informacją, który checkbox jest zaznaczony. Problem polega na tym, że powyższy kod wyświetla mi 56 rekordów. Zdublowane 4 rekordy. A powinno być 52 rekordy. Jak to ugryźć? Wiem, że muszę dodać jakieś ograniczenie do zapytania typu where id_oferta = NR_OFERTY aktualnie wyświetlanej. Tylko, żeby nie ograniczyło mi to ilość checkboxu do paru, powinno zostać 52 i parę zaznaczonych, które mają w tabeli hotel_l przypisane id_oferta.
Oto fragment złączonej, zdublowanej tabelki:
id id_oferta id_hotel id nazwa 15 21 72 72 ELENA - pok. 2os. 18 21 74 74 NINA - pok. 2os. i 3os. 16 21 68 68 Akademik - pok. 3-os. 25 15 74 74 NINA - pok. 2os. i 3os. 21 15 68 68 Akademik - pok. 3-os. 22 15 72 72 ELENA - pok. 2os. NULL NULL NULL 77 Hotel *** - pok. 3os NULL NULL NULL 23 Stefanov III
Powtarza się elena, nina, akademik i inne, które wywaliłem.