Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza danych pensjonatu. Sprawdzcie czy dobrze, MySQL
ppietras86
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


witam
Zrobiłem dość prostą bazę danych dla pensjonatu.
Pensjonat posiada 6 pokoi: dwa 4-osobowe i cztery 2-osobowe pokoje. (nie wiem czy potrzeba tam ilosc lozek-w sumei to chyba nie potrzebne). Na stronce ma byc możliwość sprawdzenia dostępności pokoji w zadanym terminie. No i oczywiscie mozliwość zarezerwowania pokoju. Nie wiem czy dobrze zrobiłem tabele płatności

Popatrzcie proszę was ślicznie i wpiszcie swoje uwagi. Krytykujcie ile wlezie bo to mi sie przyda - rzecz jasna poczytam również z checią waszych propozycje i rozwiązania (IMG:style_emoticons/default/smile.gif)

(IMG:http://www.kwm.pl/baza.jpg)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ppietras86
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


hej
A jak zrobić zapytanie w MySQL aby wypisywalo mi z bazy dostepne pokoje w zadanym jakims terminie. np. chce sprawdzic czy jest i jesli tak to jakie pokoje sa dostepne w terminie od 01.02 do 02.02 na przykład - chce aby wypisywalo mi pokoj, numer pokoju, cene.
Bardzo prosze o pomoc. Rzecz jasna zapytanie odnosi sie do bazy w fotce.



edit-----------

Zrobiłem za pomocą jednego posta z tego forum i kilku artykułów na necie zapytanie

przypomina schemat bazy (troche zmieniona)

(pokoje)
- id_pokoju
- numer_pokoju
- ilosc_osob
-cena
-uwagi

(rezerwacje)
- id_rezerwacji
- id_klienta
- id_pokoju
- data_od
- data_do
- ilosc_osob
- kwota
- czy_zaplacone

Zapytanie jest następujące:
  1. SELECT numer_pokoju, cena,
  2. IF (
  3. mid( group_concat( data_od ORDER BY data_od DESC separator ' ' ) , 1, 10 ) < '2010-02-11',
  4. mid( group_concat( data_do ORDER BY data_od DESC separator ' ' ) , 1, 10 ) ,
  5. mid( group_concat( data_do ORDER BY data_do DESC separator ' ' ) , 12, 10 )) AS wolna_data_od,
  6. IF (
  7. mid( group_concat( data_od ORDER BY data_od DESC separator ' ' ) , 1, 10 ) < '2010-02-11', '~',
  8. mid( group_concat( data_od ORDER BY data_od DESC separator ' ' ) , 1, 10 )) AS wolna_data_do
  9. FROM pokoje LEFT JOIN rezerwacje USING ( id_pokoju )
  10. WHERE data_od < '2010-02-11' OR data_do >= '2010-02-11' OR data_do IS NULL
  11. GROUP BY numer_pokoju


Przeszukuje mi to baze danych i wypluwa w zadanym terminie pokoje - ALE wyświetla wszystkie pokoje - te zarezerwowane i te wolne wraz z datami.

Próbka tego co daje na wyjściu:(te pauzy zastępują spacje)
Cytat
numer_pokoju cena wolna_data_od wolna_data_do
1------------------25-----------------------~
2------------------25---NULL---------------NULL
3------------------25---2010-02-11-------2010-02-12
4------------------25---NULL---------------NULL
5------------------35-----------------------2010-02-11
6------------------35---NULL---------------NULL

Jak zmienic zapytanie aby wyświetlało mi tylko i wyłącznie numery pokoi wraz z cena WOLNYCH POKOI (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (moze byc bez zakresu od kiedy o kiedy)

A może trzeba coś dodać jeszcze do bazy?? No i nie wiem czy dobrze grupuje na samym końcu zapytania

Prosze o pomoc bo stanąłem w jednym punkcie
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 00:47