Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][inne]Import wybranych danych z bazy
Lashlo86
post 21.02.2011, 17:36:30
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2011

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


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
Go to the top of the page
+Quote Post
CuteOne
post 21.02.2011, 17:45:39
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  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
Go to the top of the page
+Quote Post
Lashlo86
post 22.02.2011, 04:13:48
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2011

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


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
Go to the top of the page
+Quote Post
PanGuzol
post 22.02.2011, 10:02:29
Post #4





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


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.

Ten post edytował PanGuzol 22.02.2011, 10:23:03


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 01:18