Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Kalendarz a wyswietlanie z bazdy
Forum PHP.pl > Forum > Przedszkole
escobar1983
witam drogich forumowiczow. Mam do zrobienia formularz do sprawdzania dostepnosci pokoi. No i tak wszystko bylo by ok gdyby nie wyswietalnie..
  1. <?php
  2. function dni_mies($mies,$rok)
  3. {
  4. $dni = 31;
  5. while (!checkdate($mies, $dni, $rok))
  6. $dni--;
  7. return $dni;
  8. }
  9.  
  10. function dzien_tyg_nr($mies,$rok)
  11. {
  12. $dzien = date("w", mktime(0,0,0,$mies,1,$rok));
  13. return $dzien;
  14. }
  15.  
  16. function miesiac_pl($mies)
  17. {
  18. $mies_pl = array(1=>"Stycze?", "Luty", "Marzec", "Kwiecie?", "Maj", "Czerwiec",
  19. "Lipiec", "Sierpnie?", "Wrzesie?", "Pa?dziernik", "Listopad", "Grudzie?");
  20. return $mies_pl[$mies];
  21. }
  22. ?>
  23. <ul> <li>N </li>
  24. <li>Pn</li> <li>Wt</li> <li>?r</li>
  25. <li>Cz</li> <li>Pt</li> <li>Sb</li>
  26. </ul> <ul>
  27.  
  28. <?php
  29. for($i=0;$i<dzien_tyg_nr($miesiac,$rok);$i++)
  30. $j=0;  
  31. echo '<li class="hidden">00</li> ';
  32.  
  33. for($i=1;$i<dni_mies($miesiac,$rok) +1;$i++)
  34. {
  35. if ($i<10) $i = '0'.$i;
  36. if($i==$dnie[$j])
  37. {
  38.  
  39. echo '<li><font color="blue">'.$i.' </font></li>';  $j=$j+1;
  40.  
  41. }
  42. else {
  43. echo '<li>'.$i.'</li> '; }
  44. }
  45.  
  46. </ul>
  47. ?>

Problem wyglada tak ze $dnie to jest tablica dni z bazy i sa porownywane te dni z tymi co maja byc wyswietlone sa one wyswietalne ale kazdy miesiac zaczyna sie od tego samego dnia. Czy ktos moze pomoc mi z tym problemem? pozdrawiam i z gory dzieki
Darti
tak na szybko to zamień
  1. echo '<li class="hidden">00</li> ';
na np
  1. echo '<li>&nbsp;</li> ';


ale wątpię czy będzie działać, strasznie namieszany masz ten kod i tak ... bez pomysłu.
escobar1983
Nie w tym tkwi problem.. Chodzi o to że jeżeli wywale sobie tego if($i==$dnie[$j]) to pokazuj się dobrze kalendarz a jak wstawie tego if'a to każdy miesiąc zaczyna sie od poniedziałku i na dodatek nie które miesiące wogole sie nie pojawiaja. Jakie propozycje zmiany tego kalendarza?
Darti
jak ma wyglądać wynikowy html ? bardzo mnie to ciekawi ...
escobar1983
jak kalendarz np.

Nd Pn Wt Sr Czw Pt Sb
01 02 03 04 05 06
07 08 09 10 11 12 13


itd...
No i teraz jesli dni z bazy pasuja to maja byc na niebiesko.. cos nie tak czy jak??
css:
Kod
#kalendarz {width: 250px;}
#kalendarz p {text-align: right;}
#kalendarz li {display: inline; padding:2px 5px; }
Darti
  1. <?php
  2. function dni_mies($mies,$rok)
  3. {
  4. $dni = 31;
  5. while (!checkdate($mies, $dni, $rok)) // mozna i tak :))))
  6. $dni--;
  7. return $dni;
  8. }
  9.  
  10. function dzien_tyg_nr($mies,$rok)
  11. {
  12. $dzien = date("w", mktime(0,0,0,$mies,1,$rok));
  13. return $dzien;
  14. }
  15.  
  16. function miesiac_pl($mies)
  17. {
  18. $mies_pl = array(1=>"Stycze?", "Luty", "Marzec", "Kwiecie?", "Maj", "Czerwiec",
  19. "Lipiec", "Sierpnie?", "Wrzesie?", "Pa?dziernik", "Listopad", "Grudzie?");
  20. return $mies_pl[$mies];
  21. }
  22.  
  23. <ul>
  24. <li>N </li>
  25. <li>Pn</li>
  26. <li>Wt</li>
  27. <li>Śr</li>
  28. <li>Cz</li>
  29. <li>Pt</li>
  30. <li>Sb</li>
  31. </ul>
  32. <ul>';
  33.  
  34. // symulacja danych z bazy:
  35. $dnie = array('a','b','c');
  36. $miesiac = 7;
  37. $rok = 2009;
  38.  
  39. $dzien_tyg = dzien_tyg_nr($miesiac,$rok); //lepiej zrobic to raz  i miec z glowy
  40. $ile_dni_mies = dni_mies($miesiac,$rok);   //lepiej zrobic to raz i miec z glowy
  41.  
  42.  
  43. for($i=0;$i<=$dzien_tyg + $ile_dni_mies ;$i++){    
  44.    if($i-$dzien_tyg > 0){ //tutaj jest sztuczka
  45.        if(!($i % 7)){
  46.            echo '<br>';
  47.        }    
  48.        if(array_key_exists($i-$dzien_tyg-1,$dnie)){
  49.            echo '<li><font color="blue">'.sprintf('%02d',$i-$dzien_tyg).'</font></li>';
  50.        } else {
  51.            echo '<li>'.sprintf('%02d',$i-$dzien_tyg).'</li> ';    
  52.        }        
  53.    } else {
  54.        echo '<li class="hidden">00</li> ';
  55.    }
  56. }
  57. echo '</ul>';
  58. ?>
escobar1983
Obojetnie jaki miesiac nie wybiore zawsze pierwszy dzien jest na niebiesko..no i kazdy miesiac zaczyna sie o jeden dzien pozniej niz powinien.
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.