Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie wolnego terminu
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
Mam następującą tabelkę zawierającą rekordy z zajętymi terminami pojazdów:
  1. CREATE TABLE IF NOT EXISTS `cms_users_polaczenia_lotow` (
  2. `bf_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
  4. `idpojazdu` int(11) NOT NULL,
  5. `datastart` date DEFAULT NULL,
  6. `datacel` date DEFAULT NULL,
  7. `godzinastart` time DEFAULT NULL,
  8. `godzinacel` time DEFAULT NULL,
  9. UNIQUE KEY `id` (`bf_id`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;



datastart = oznacza datę wyjazdu
datacel =oznacza datę dotarcia do celu
godzinastart = oznacza godzinę wyjazdu
godzinacel =oznacza godzinę dotarcia do celu


Potrzebuję zapytanie które:
a) sprawdzi czy dany pojazd jest zajęty w wyszukiwanym terminie (jeśli istnieje rekord o konkretnej godzinie i dacie = pojazd zajęty)
(IMG:style_emoticons/default/cool.gif) jeśli jest wolny - to wyświetli wolne terminy w formacie: 1:00, 1:05, 1:10, 1:15 itp (od 1 do 24 z wyłączeniem zajętych terminów).

Wie ktoś może jak to zrobić?

Bardzo proszę o pomoc,
Northwest

Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Jestes juz troche na forum, powinienies wiedziec, ze nie wolno zakladać jednego tematu w roznych dzialach.... Drugi skasowalem.
2) Czemu robijasz na date i czas? Czemu nie trzymasz tej informacji w jednym polu DATETIME?? Przeciez jedno pole jest o niebo wygodniejsze
3)
Odnosnie punktu a:
Gdy już połączysz dwa pola w jedno DATETIME to robisz zwykly banalny warunek
...where CZAS_START <= szukany czas and CZAS_KONIEC >= szukany czas
mozesz tez uzyc poprostu BETWEEN
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
northwest
post
Post #3





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


dziękuję bardzo za pomoc (IMG:style_emoticons/default/smile.gif)

select bf_id from tabela WHERE datastart <='2014-07-23 2:10:00' and datacel >='2014-07-23 2:10:59' ;

czyli tak być widział to zapytanie? (IMG:style_emoticons/default/smile.gif)

Ten post edytował northwest 21.07.2014, 22:25:22
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak. Przy zalozeniu rzecz jasna, ze połączyles dwa pola w jedno DATETIME
Go to the top of the page
+Quote Post
northwest
post
Post #5





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


coś nie do końca to działa (IMG:style_emoticons/default/sad.gif)

mam zapytanie:
  1. SELECT id FROM polaczenia WHERE datastart <='2014-07-30 15:15:00' AND datacel >='2014-07-30 17:15:59' ;


i rekord w bazie z połączeniem: datastart = 2014-07-30 14:55:00 oraz datacel = 2014-07-30 15:15:00
Zapytanie mi nie zwraca rekordu....

Potrzebuję zapytanie które sprawdzi mi, czy nie istnieją zajęte terminy w wybranym przedziale czasowym...
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A patrzyles czy zapytanie nie zwraca ci tez przypadkiem bledu bazy?

ps: no ale chwila moment.... Nie pisales wczesniej o przedziale czasowym. PIsales ze szukasz danych dla danej godziny, a teraz w zapytaniu podajesz rozne czasy..
Wyraznie napisalem
...where CZAS_START <= szukany czas and CZAS_KONIEC >= szukany czas
Gdzie szukany czas to wartosc stala w obu warunkach a nie ty podajesz rozne
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
northwest
post
Post #7





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


fakt,dziękuję (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ps2:
datacel = 2014-07-30 15:15:00
datacel >='2014-07-30 17:15:59'

Naprawde uwazasz ze
'2014-07-30 15:15:00' >='2014-07-30 17:15:59'
to jest prawdziwy warunek? Bo ja nie. (IMG:style_emoticons/default/tongue.gif) Nie oczekuj wiec, ze znajdzie ci rekord dla nieprawdziwego warunku
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 16.09.2025 - 02:21