Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrobić zapytanie do bazy?
Forum PHP.pl > Forum > Bazy danych
Hawaj81
Witam,

Mam oto taki problem:

tabela w oraclu: czas->kolumny to data i godzina.
Jak zrobić zapytanie (przez php) które przy dodaniu daty i godziny (poprzez metodę POST z wykorzystaniem foramularza) porówna dodany tą metodą rekord w tabeli i jeśli data i godzina będzie taka sama jak rekord istniejący wyświetli "taka data i godzina już jest" w przeciwnym przypadku "nie ma tej daty i godziny"

Trochę z tym namieszałem, ale pewnie będziecie wiedzieli o co chodzi.

Grzebałem troszkę o necie, ale nic nie znalazłem na ten temat.
dzięki za odpowiedzi
Grzyw
Nie wiem, czy Oracle poprzez triggery pomógłby, bo jestem w tym cieńki.
Ale zawsze możesz zrobić to standardem:

1) Pobierasz istniejącą datę z bazy
2) Konwertujesz datę z formularza i datę z bazy do identycznego formatu
3) Porównujesz je
4) Wywalasz komunikat lub ładujesz datę do bazy, jeżeli jest OK.

Ale triggery pewnie Ci pomogłyby zrobić to na poziomie bazy danych. I informacji o triggerach szukaj.
phpion
A nie lepiej założyć indeks unikalny na obie te kolumny jednocześnie? Wtedy przy próbie wpisania takich samych danych dostaniemy kominikat o duplikowaniu unikalnych danych. Inne rozwiązanie to takie, które przedstawił Grzyw. Trigger uruchamiany w momencie INSERTa oraz UPDATEa robiący prosty SELECT z warunkami WHERE data=:NEW.data AND godzina=:NEW.godzina. I jeśli NO_DATA_FOUND (nie ma takich rekordów) to OK, a w przeciwnym wypadku ROLLBACK i RAISE_APPLICATION_ERROR.
smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.