Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Liczba w przedziale liczbowym PHP + MySQL
startCode
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 2.03.2015

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


Witajcie, mam problem z którym walczę już drugi dzień.
Piszę skrypt w php z wykorzystaniem MySQLa, używam PDO.

W bazie danych mam następujący układ

ID | Nazwa | od | do | grupa
----------------------------------------
1 Adam 2 5 A
2 Marcin 7 9 B
3 Tomek 13 20 B

I teraz formularz w PHP wygląda następująco:

[imie]
[od]
[do]

I teraz warunkiem wpisu do bazy danych jest to że od i do nie może być w przedziale i w grupie.
Tzn. można przyjąć że te od i do jest godziną.
Czyli jeżeli ktoś zarezerwował miejsce w grupie B od godziny 7 do 9 to teraz kolejna osoba nie może zarezerwować tego miejsca w tych godzinach.
Kombinowałem z BETWEEN ale niestety nic z tego, nie mam pojęcia jak to ugryźć.

Jedna z próbek kodu:

  1. $stmt = $pdo->prepare("SELECT * FROM rezerwacja WHERE (IMG:style_emoticons/default/ohmy.gif) d <= `od` OR >= `do`");
  2. $stmt->bindValue(":od", $od, PDO::PARAM_STR);
  3. $stmt->execute();
  4. $results = $stmt->fetch(PDO::FETCH_ASSOC);
  5.  
  6. if ($stmt->rowCount() !== 0)
  7. {
  8. echo 'Miejsce zajęte.';
  9. return;
  10. }


Nie liczę na gotowe rozwiązanie, ale fanie byłoby gdyby ktoś mnie nakierował na odpowiednią ścieżkę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Gelio
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 2
Dołączył: 28.02.2009

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


Źle napisane zostało zapytanie, jak pewnie się domyśliłeś. Powinno być coś w stylu:
  1. SELECT * FROM rezerwacja WHERE od >= (IMG:style_emoticons/default/ohmy.gif) d AND do <= (IMG:style_emoticons/default/biggrin.gif) o;

Pozwoliłem sobie zmienić spójnik na "i", ponieważ oba warunki winny być spełnione, a także dodałem parametr związany z "do", ponieważ nie sprawdzałeś go. Nie zapomnij dodać kolejnego "bindValue" dla parametru do.
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: 15.10.2025 - 22:57