Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Kalendarz a wyswietlanie z bazdy
escobar1983
post 8.07.2009, 22:51:43
Post #1





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Darti
post 9.07.2009, 08:44:29
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


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.

Ten post edytował Darti 9.07.2009, 08:46:01


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
escobar1983
post 9.07.2009, 12:23:46
Post #3





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


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?
Go to the top of the page
+Quote Post
Darti
post 9.07.2009, 13:59:57
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


jak ma wyglądać wynikowy html ? bardzo mnie to ciekawi ...


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
escobar1983
post 9.07.2009, 15:14:19
Post #5





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


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; }
Go to the top of the page
+Quote Post
Darti
post 9.07.2009, 16:30:34
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  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. ?>


Ten post edytował Darti 9.07.2009, 16:31:54


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
escobar1983
post 9.07.2009, 20:04:23
Post #7





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


Obojetnie jaki miesiac nie wybiore zawsze pierwszy dzien jest na niebiesko..no i kazdy miesiac zaczyna sie o jeden dzien pozniej niz powinien.

Ten post edytował escobar1983 9.07.2009, 20:13:53
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: 14.08.2025 - 13:54