Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Kalendarz
Kaarpiik
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Witam. Mam problem. Próbuję dodać do bazy danych kalendarz z 2012 roku. Funkcja ilednimiesiac sprawdza ile dni ma dany miesiac. Petla for ma za zadanie dodać rekordy. Niestety skrypt wyświetla 366 razy 'zle'.
  1. function ilednimiesiac($miesiac, $rok) {
  2. $dmax = 31;
  3. while (!checkdate($miesiac, $dmax, $rok)) $dmax--;
  4.  
  5. return $dmax;
  6. }
  7.  
  8. for($m=1;$m<=12;$m++) {
  9. $dmax = ilednimiesiac($m, 2012);
  10. for($d=1;$d<=$dmax;$d++) {
  11. $result = mysql_query("INSERT INTO calendar VALUES ('2012', '$m', '$d')");
  12. if(!$result) echo "zle";
  13. else echo "ok";
  14. }
  15. }


Gdy petla wyglada w nastepujacy sposob skrypcik dziala elegancko
  1. for($m=1;$m<=12;$m++) {
  2. $dmax = ilednimiesiac($m, 2012);
  3. for($d=1;$d<=$dmax;$d++) {
  4. echo '2012.'.$m.'.'.$d.'<br>';
  5. }
  6. }


Ten post edytował Kaarpiik 28.03.2012, 21:51:30
Go to the top of the page
+Quote Post
vonski
post
Post #2





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

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


W zapytaniu błędu nie ma więc może której z pól jest UNIQUE? No i przede wszystkim może głupie pytanie, ale czy na pewno masz połączenie z bazą smile.gif


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Połączenie z bazą jest, inaczej by wywaliło błąd wink.gif Sam nie wiem co skopałem..
Go to the top of the page
+Quote Post
Azek
post
Post #4





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 28.12.2011

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


Wydaje mi się, że próbujesz wrzucić do tabeli string zamiast zmiennej.
  1. $result = mysql_query("INSERT INTO calendar VALUES ('2012', '$m', '$d')");

zamień na
  1. $result = mysql_query("INSERT INTO calendar VALUES ('2012', '".$m."', '".$d."')");


BTW, to lepszy sposób sprawdzenia ile dni ma miesiąc.
  1. $ile_dni=date("t", mktime(0,0,0,$miesiac+1,0,$rok));


Ten post edytował Azek 29.03.2012, 13:50:43
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 Aktualny czas: 20.08.2025 - 23:21