![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 134 Pomógł: 4 Dołączył: 16.02.2007 Skąd: Leszno Ostrzeżenie: (20%) ![]() ![]() |
Witam,
mam mały problem z pętlą. Napisałem kod:
Baza Danych: Kod -- -- Struktura tabeli dla `pokoj_1` -- CREATE TABLE `pokoj_1` ( `id` int(11) NOT NULL auto_increment, `do_dd` text, `do_mm` text, `do_rr` text, `z_dd` text, `z_mm` text, `z_rr` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=3; -- -- Zrzut danych tabeli `pokoj_1` -- INSERT INTO `pokoj_1` (`id`, `do_dd`, `do_mm`, `do_rr`, `z_dd`, `z_mm`, `z_rr`) VALUES(1, '11', '02', '2009', '13', '02', '2009'), (2, '14', '02', '2009', '15', '02', '2009'); -- -------------------------------------------------------- -- -- Struktura tabeli dla `pokoj_2` -- CREATE TABLE `pokoj_2` ( `id` int(11) NOT NULL auto_increment, `do_dd` text, `do_mm` text, `do_rr` text, `z_dd` text, `z_mm` text, `z_rr` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=3; -- -- Zrzut danych tabeli `pokoj_2` -- INSERT INTO `pokoj_2` (`id`, `do_dd`, `do_mm`, `do_rr`, `z_dd`, `z_mm`, `z_rr`) VALUES (1, '11', '08', '2009', '13', '08', '2009'), (2, '14', '08', '2009', '15', '08', '2009'); -- -------------------------------------------------------- -- -- Struktura tabeli dla `pokoj_3` -- CREATE TABLE `pokoj_3` ( `id` int(11) NOT NULL auto_increment, `do_dd` text, `do_mm` text, `do_rr` text, `z_dd` text, `z_mm` text, `z_rr` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=3; -- -- Zrzut danych tabeli `pokoj_3` -- INSERT INTO `pokoj_3` (`id`, `do_dd`, `do_mm`, `do_rr`, `z_dd`, `z_mm`, `z_rr`) VALUES (1, '11', '02', '2009', '13', '02', '2009'), (2, '14', '02', '2009', '15', '02', '2009'); Pętla wyświetla mi: Kod Rezerwacja pokoju 1 Pokój 1 zajęty Rezerwacja pokoju 2 Rezerwacja pokoju 2 Rezerwacja pokoju 3 Pokój 3 zajęty Chodzi mi o to że jeśli dane istnieją w tabeli obojętnie pod jakim ID to żeby nie wyświetlało mi tyle razy ile jest ID w bazie tylko raz o to co jest w zapytaniu: Kod Pokój 1 zajęty
Rezerwacja pokoju 2 Pokój 3 zajęty -------------------- "This isn't Miami..., This isn't Music! This is power!!"
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 2 Dołączył: 17.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
problem zapewne tkwi w warunkach w IF'ie używająć operatorów logicznych && i || pamiętaj że w przypadku && gdy operand 1 jest false to reszta nie jest sprawdzana, odwrotnie jest przy || gdy operand1 jest true reszta jest pomijana...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
ta twoja baza jest dziwna po co tabela dla każdego pokoju?? nie wystarczy tabela pokoje i tam dane o danym pokoju?? poza tym mysql ma typ daty nie musisz trzymać tego w 3 polach
Ten post edytował f1xer 18.02.2009, 00:44:08 -------------------- Pomogłem? wyraź to i kliknij "Pomógł"
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 18 Dołączył: 6.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisał kolega wyżej, cała baza jest zdaje się do wymiany. Wystarczy Ci jedna tabela, lub dwie np: jedna z pokojami (id, opis, cos_tam) i druga z rezerwacjami (id, data_poczatkowa, data_koncowa) - to oczywiście przykład, wszystko zależy od potrzeb. Mając poprawnie skonstruowaną bazę możesz stawiać odpowiednie warunki w zapytaniu SQL i na wstępie otrzymywać częściowo posortowane dane z bazy, a tak wyciągasz bez potrzeby wszystko z trzech tabel.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 07:20 |