Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Kalendarz
Forum PHP.pl > Forum > Przedszkole
Kaarpiik
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. }
vonski
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
Kaarpiik
Połączenie z bazą jest, inaczej by wywaliło błąd wink.gif Sam nie wiem co skopałem..
Azek
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));
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.