Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][inne]Import wybranych danych z bazy
Forum PHP.pl > Forum > Przedszkole
Lashlo86
Witam.
Potrzebuję pomocy z następującym problemem. Jak napisać zapytanie w PHP zwracające rekordy z bazy jako string w formacie ( 1 jeśli tak , 0 jeśli nie) np. 01011110 ?

Wykonałem we Flashu formularz rezerwacji pokoi. Wybieram datę, numer pokoju i wtedy chcę wysłać powyższe zapytanie z podaną datą i pokojem, sprawdzające w jakich godzinach ten pokój jest wolny tzn. figuruje w bazie. Przykład jeśli od 8:00 do 8:15 jest wolny to 0 , jeśli np. od 8:15 do 8:30 jest zajęty to 1,jeśli dalej 8:30 do 8:45 to następna 1 itd.. I tak do końca dnia co 15 minut. Np. ktoś zarezerwował tego dnia salę od 8:00 do 9:00 . Wtedy początek zwracanego wyniku to 1111....


Dane wysłałem następująco
  1.  
  2. <?php
  3.  
  4. $host = "localhost";
  5. $user = "root";
  6. $password = "haslo";
  7. $database = "rezerwacje";
  8.  
  9. $con = mysql_connect($host,$user,$password);
  10. mysql_select_db($database, $con);
  11.  
  12. $addReservation = "INSERT INTO reservations (Name, Name2, Mail, Phone, Hour, Hour2, Date, Room, Comment, Status) VALUES ('$_POST[name]' , '$_POST[name2]' , '$_POST[mail]' , '$_POST[phone]' , '$_POST[hour]' , '$_POST[hour2]' , '$_POST[date]' , '$_POST[room]' , '$_POST[comment]' , ' ');";
  13. if (!mysql_query($addReservation,$con))
  14. {
  15. die('Error: ' . mysql_error());
  16. }
  17.  
  18. echo "Status=wykonano";
  19.  
  20.  
  21. ?>


Wszystkie dane zapisane są w postaci tekstowej. Hour i Hour2 w formacie ("8:00") wybieram z odstępem 15 minutowym. Date jest w formacie " 21, 02, 11 ", a Room "1". Proszę o pomoc. Pozdrawiam
CuteOne
  1.  
  2. $query = mysql_query("SELECT * FROM reserwacje");
  3. $row = mysql_fetch_array($query);
  4.  
  5. $string = '';
  6. $string .= $row['aaa'];
  7. $string .= $row['bbb'];
  8. $string .= $row['ccc'];

$row['aaa']/$row['bbb']/$row['ccc'] to kolumny z bazy ale cały sekret leży w .= smile.gif
Lashlo86
Niestety nie zrozumiałem podpowiedzi CuteOne
Tak, więc przez kilka godzin czytałem forum, lecz bez większych efektów.
Zmieniłem zmienne do standardowych formatów tj. data = "rrrr-mm-dd" , a godziny na "hh:mm:ss".

Udało mi się znaleźć temat zbliżony tematyką do mojego, lecz nie potrafię poradzić sobie z napisaniem poprawnego zapytania.

Link do tego tematu ==> http://forum.php.pl/index.php?showtopic=150820

Stworzyłem zarys swojego pomysłu. Proszę, aby ktoś "przekompilował" go na zapytanie PHP.


  1.  
  2. $x; // godzina np. 8:00:00
  3. Hour; //godzina rozpoczecia istniejacych rezerwacji w bazie
  4. Hour2; //godzina zakończenia istniejacych rezerwacji w bazie
  5.  
  6.  
  7.  
  8. for($x=8:00:00; $x<=20:00:00; $x=$x+00:15:00)
  9. {
  10. $sql = "SELECT * FROM reservations WHERE room = $argument[0] AND date = $argument[1] AND (($x > Hour AND $x< Hour2) OR ($x > Hour AND $x < Hour2) OR( $x < Hour AND $x > Hour2))";
  11.  
  12. if($sql > 0)
  13. {
  14. $tablica[x]="1";
  15. }else
  16. $tablica[x]="0";
  17.  
  18. }
  19.  
  20. for(i=0;i<=47;i++)
  21. {
  22. wypisanie wszystkich znaków do stringa z tablicy
  23. }
  24.  
  25. echo stworzony string
  26.  


Bardzo przepraszam za ten PSEUDO kod, ale chciałem napisać tego posta jeszcze przed snem. wstydnis.gif
PanGuzol
Jako, ze chcesz wynajmować salę tylko miedzy 8 a 20 tj 12h możesz skorzystać z reprezentacji bitowej float. Przy 24h brakło by kilku bitów.
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.