• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak sprawdzić czy dane terminy są wolne?

Mały hosting, OGROMNE możliwości
0 głosów
2,217 wizyt
pytanie zadane 6 lutego 2016 w PHP przez selfdrivers Użytkownik (870 p.)
Witam,

Mam pytanie dot. sprawy php. Mianowicie chciałbym stworzyć kod któren sprawdzałby po wprowadzeniu danych do formularza zanim zgłoszenie zostanie dodane czy dany termin przypadkiem nie jest zajęty, czy nie nachodzi on na żaden inny oraz czy nie przecina się z jakimś innym. Ogólnie np: Janek ustawił termin od 2016-09-01 (RRRR-MM-DD) do 2016-09-10 i skrypt ma sprawdzić czy czas pomiędzy tymi datami nie schodzi się z innymi z bazy MySQL np ktoś ma już termin w 2016-09-05 do 2016-09-08 i skrypt wtedy nie może wgrać takiego rekordu do bazy danych chyba że tego terminu nie ma w bazie lub się nie przecina z innym to wtedy może dodać ten termin. Z góry sory za masło maślane ale chcę abyście zrozumieli o co mniej więcej chodzi. Z góry dziękuje.

4 odpowiedzi

+3 głosów
odpowiedź 6 lutego 2016 przez Tnifey Pasjonat (24,190 p.)

Kolumna typu DATE oraz sprawdzasz czy istnieje rekord pomiędzy danymi datami od tego masz BETWEEN. Jeśli nie znajdzie w bazie danych żadnych rekordów pasujących to dodaj termin do bazy, jeśli znajdzie wyświetl komunikat, że nie można dodać terminu :)

komentarz 7 lutego 2016 przez selfdrivers Użytkownik (870 p.)
Wiesz nawet gdy użyje SELECT dataod, datado FROM itd. to i tak nie działa :)
komentarz 7 lutego 2016 przez selfdrivers Użytkownik (870 p.)
Czyli co jesteśmy znów w punkcie wejścia?? :/
komentarz 7 lutego 2016 przez Tnifey Pasjonat (24,190 p.)

weź wszystkie headery w komentarz sprawdz var_dump($rezultat2); 

komentarz 7 lutego 2016 przez selfdrivers Użytkownik (870 p.)
Nic :/ jakieś inne pomysły??
komentarz 8 lutego 2016 przez selfdrivers Użytkownik (870 p.)
To co nikt już niestety nie ma pomyslów?
+1 głos
odpowiedź 6 lutego 2016 przez gab123 Mądrala (5,230 p.)
$rezult = $mysql->query("SELECT * FROM nazwabazydanych WHERE data = termin") ;


if($rezult->num_rows==0) //termin jest wolny 

 

komentarz 6 lutego 2016 przez Arkadiusz Waluk Ekspert (291,510 p.)
SELECT * jest złe.

W SELECT odwołujemy się do konkretnej tabeli, a nie bazy danych.

Kolega chciał, aby to była data od - do, a nie jeden termin.
komentarz 6 lutego 2016 przez gab123 Mądrala (5,230 p.)

przyczytalam sam tytul jeśli jest tak jak mówisz zapytanie powinno być :

SELECT * FROM tabela WHERE date BETWEEN data1 AND data2

Co do gwiazdki jest trochę mniej klopotliwa a przy malym programie dużo na tym nie stracisz ale jak kto woli. (;

komentarz 6 lutego 2016 przez gab123 Mądrala (5,230 p.)
Może masz racje nie jestem ekspertem. Tak mnie uczono. Nie chce się kucic napisałam jak kto chce
0 głosów
odpowiedź 7 lutego 2016 przez selfdrivers Użytkownik (870 p.)
A można zamiast wpisywania ręcznie daty wczytać ją ze zmiennej?? Bo gdy to robie nic nie wyświetla się ani 0 ani 1 itd.
0 głosów
odpowiedź 9 lutego 2016 przez selfdrivers Użytkownik (870 p.)
Okay działa to zapytanie lecz gdy data jest w innej dacie i się nie przecinają to zapytanie zwraca wartość 0. Jak to rozwiązać?

Podobne pytania

0 głosów
1 odpowiedź 1,084 wizyt
+1 głos
2 odpowiedzi 1,332 wizyt
0 głosów
1 odpowiedź 543 wizyt
pytanie zadane 6 listopada 2024 w PHP przez Beginner555 Bywalec (2,090 p.)

93,718 zapytań

142,631 odpowiedzi

323,263 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...