![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Od razu przechodzę do rzeczy. Wyobraźmy sobie tabelę która reprezentuje układ sali z wyborem miejsc na seans.
Generuję ją w taki sposób:
i mam tablicę 15x16. Każda komórka ma wartość przypisaną z rzędu i miejsca. więc mamy rzędy od A do P oraz miejsca od 1 do 15. Komórka więc przyjmuje wartość np A10, H11 itd. Jeśli user zaznaczy odpowiednie miejsce i wciśnie przycisk Rezerwuj to do bazy danych zostają wysłanie dane o czasie rezerwacji, użytkowniku, miejscach i numerze seansu na który jest rezerwacja. teraz chcę rozbudować powyższy kod o sprawdzenie, czy dane miejsce jest już zajęte i jeśli tak, to zmieniać kolor komórki i ustawiać checkboxa na wyłączonego. No i jest problem. Żeby sprawdzić czy miejsce jest zajęte pobieram dane o seansie z bazy :
Dla swojej wygody każde zaznaczone miejsce na sali (nawet wybrane przez jednego użytkownika) zapisuje się jako nowy wiersz w kolumnie. Więc jeśli użytkownik zaznacz dwa miejsca w bazie będą dwa wpisy. Tak wymyśliłem na potrzeby późniejszego zliczania ilości rezerwacji miejsc na dany seans. aby rozbudować for o sprawdzanie czy miejsce jest zajęte muszę w pierwszej kolejności pobrać zajęte miejsca z zapytania do bazy danych:
pytanie jak połączyć tego while z for powyżej i w jak określić warunek zmiennego wyglądu tła komórki jeśli dane miejsce jest zajęte? z góry dziękuję za wszelką pomoc i zainteresowanie problemem (IMG:style_emoticons/default/smile.gif) Ten post edytował Darkstorm 30.08.2010, 14:26:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A więc zrób całość już na etapie przygotowania danych. Pobierz tylko zajętość sali na dany seans filmowy dla danej sali. Stwórz 2-wymiarową tablicę z domyślnymi wartościami ustawionymi na "wolne" (true, 1 czy jak tam chcesz - masz pełną dowolność). Pobierasz wszystkie rekordy i po kolei parsując wyniki "zaznaczasz", które miejsce zajęte. Potem to już tylko wyświetlasz odczytując ładnie tablicę. Jeśli zajęte to ustawiasz inny kolor tła/klasę czy co tam chcesz i nie dajesz checkboxa.
EDIT: Parsujesz to znaczy zamieniasz wpis z bazy w stylu G13 na $zajete = array('G' => array('13' => true) ); W sumie nawet nie musiałbyś robić tabeli 2-wymiarowej na starcie. Wystarczy byś miał sparsowane wszystkie zajęte i w pętli byś tylko odczytywał czy Oczywiście może być inaczej, ale to jedno z moim zdaniem normalniejszych rozwiązań. Są lepsze, ale po co kombinować w takim wypadku? Problem jest wystarczająco prosty by go nie było sensu udziwniać (IMG:style_emoticons/default/winksmiley.jpg)
Powód edycji: [thek]: literka ą w rząd i ę w zajęte rozwalała kolorowanie składni ;)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
ok. rozumiem o co chodzi. spróbuje Twoim sposobem. Wydaje mi się że ogarnę (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:45 |