Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rozpoczecie sie rundy
Forum PHP.pl > Forum > PHP
simondev
Witam, mam taki problem i już głowa mnie boli od niego, otóż mam w bazie danych tabelke rundy a w niej pola nr, poczatek, koniec no i id oczywiscie. Pole nr zawiera 2 znakowe integery zas pola poacztek i koniec zawierają datę końca i rozpoczęcia rundy w takiej formie (2007,6,19,15,00,00)(rok,miesiac,dzien,godzina,minuta,sekunda). Moim zadanie jest stwierdzic jak runda trwa w danej chwili
  1. <?php
  2. $pokaz = mysql_query("SELECT * FROM rundy") or die(mysql_error());
  3. while($dane = mysql_fetch_array($pokaz)){
  4. $po = explode(",",$dane['poczatek']);
  5. $ko = explode(",",$dane['koniec']);
  6. if($po[0]<=date("Y")&&$po[1]<=(date("n")-1)&&$po[2]<date("j")){
  7. if($ko[0]>=date("Y")&&$ko[1]>=(date("n")-1)&&$ko[2]>=date("j")){
  8.  if(($po[3]<=date("G")||$po[3]>=date("G"))&&($po[4]<=date("i")||$po[4]>=date("i"))&&($po[5]<=date("s")||$po[5]>=date("s"))){
  9. if(($ko[3]<=date("G")||$ko[3]>=date("G"))&&($ko[4]<=date("i")||$ko[4]>=date("i"))&&($ko[5]<=date("s")||$ko[5]>=date("s"))){
  10. print "Trwa obecnie runda".$dane['nr'];
  11. }else{print"problem Tylko godzina koniec";}
  12.  }else{print"problem Tylko godzina poczatek";}
  13. }
  14. }
  15. }
  16. ?>

w miejscu gdzie jest
  1. <?php
  2. (date("n")-1)
  3. ?>
nie ma błędu ponieważ w bazie zapisywana jest data w taki sposób aby można było ja później wykorzystać w javascript(inaczej tablicowane miesiącew js jest (0-11) a w php jest (1-12)).
Ten skrypt ktory przedstawilem wyswietla jedynie ze caly czas trwa 1 runda nawet jesli skonczyla sie juz godzian jej konca i zaczela godzin poczatku nastepnej sad.gif sad.gif

wpisy rund w bazie w bazie :
Cytat
Runda 1 2007,6,13,11,00,00 2007,6,16,11,00,00
Runda 2 2007,6,16,11,00,00 2007,6,19,11,00,00
Runda 3 2007,6,19,11,00,00 2007,6,22,11,00,00
Runda 4 2007,6,22,11,00,00 2007,6,25,11,00,00


Moze mi ktos pomoc??
Dziekuje za wszelka pomoc.
b_chmura
1. datę zmień na czas unixowy
2. pobierz aktualną datę
3. wyciągasz dane i po kolei sprawdzasz warunkiem >> if($koniec_runda > $aktualny_czas OR $poczatek_rundy < $aktualny_czas)
4. jeśli w/w warunek jest spełniony >> echo "Trwa obecnie runda".$dane['nr'];
5. jeśli nie, to nic nie robisz:D
simondev
Cytat(b_chmura @ 16.07.2007, 17:27:20 ) *
1. datę zmień na czas unixowy
2. pobierz aktualną datę
3. wyciągasz dane i po kolei sprawdzasz warunkiem >> if($koniec_runda > $aktualny_czas OR $poczatek_rundy < $aktualny_czas)
4. jeśli w/w warunek jest spełniony >> echo "Trwa obecnie runda".$dane['nr'];
5. jeśli nie, to nic nie robisz:D

dzieki wyprobuje biggrin.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.