Witam serdecznie!
Czy ktoś mógłby mnie naprowadzić jak zrobić żeby w tabeli w polu ilość dni pojawiła się obliczona wartość po wpisaniu daty w pole od i do. Wpisuję np. w pole od 2008-11-12 i w pole do 2008-11-28 i powinna się pokazać w tabeli wartość obliczona przez funkcję workDays.

Z góry dziękuję za pomoc.

  1. <HTML>
  2.  <HEAD>
  3.    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
  4.    <TITLE>baza</TITLE>
  5.  </HEAD>
  6.  <BODY>
  7.    <? // Aplikacja daje nam możliwość odczytu, kasowania, dodawania
  8.       // i poprway danych w bazie.
  9.  
  10.      mysql_connect ("localhost", "root", "") or
  11.        die ("Nie można połączyć się z MySQL");
  12.      mysql_select_db ("ksiazkatelefoniczna") or
  13.        die ("Nie można połączyć się z bazą ksiazkatelefoniczna");
  14.  
  15.      if ($co == 'dodaj') {  // dodawanie rekordu
  16.        if ($imie && $nazwisko && $telefon && $od && $do) {
  17.          $query = "INSERT INTO ksiazkatelefoniczna (nr, imie, nazwisko, ";
  18.          $query .= "telefon, od, do, iloscdni) VALUES ('', '$imie', '$nazwisko', '$telefon', '$od', '$do'$iloscdni');";
  19.          $wynik = mysql_query ($query);
  20.        }
  21.      } elseif ($co == 'popraw') {  // poprawianie rekordu
  22.        if ($imie && $nazwisko && $telefon && $od && $do) {
  23.          $query = "UPDATE ksiazkatelefoniczna SET imie='$imie', nazwisko=";
  24.          $query .= "'$nazwisko', telefon='$telefon', od='$od', do='$do',iloscdni=$iloscdni, WHERE nr='$id';";
  25.          $wynik = mysql_query ($query);
  26.        }
  27.      } elseif ($co == 'edytuj') {  // przygotowanie do poprawek
  28.         $query = "SELECT * FROM ksiazkatelefoniczna where nr='$id';";
  29.         $wynik = mysql_query ($query);
  30.         $rekord = mysql_fetch_array ($wynik);
  31.         $id = $rekord[0]; $imie = $rekord[1]; $nazwisko = $rekord[2];
  32.         $telefon = $rekord[3]; $od = $rekord[4]; $do = $rekord[5]; $iloscdni=$rekord[6];
  33.         print '<FORM METHOD="POST">Poprawa rekordu:';
  34.         print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">';
  35.         print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$id.'"><TABLE>';
  36.         print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  37.         print 'NAME="imie" VALUE="'.$imie.'"></TD></TR><TR><TD>Nazwisko:';
  38.         print '</TD><TD><INPUT TYPE="text" NAME="nazwisko"';
  39.         print 'VALUE="'.$nazwisko;
  40.         print '"></TD></TR><TR><TD>Telefon:</TD><TD><INPUT TYPE="text"';
  41.         print 'NAME="telefon" VALUE="'.$telefon.'"></TD></TR>';
  42.                 print '"></TD></TR><TR><TD>Od:</TD><TD><INPUT TYPE="text"';
  43.         print 'NAME="data1" VALUE="'.$data1.'"></TD></TR>';
  44.                 print '"></TD></TR><TR><TD>Do:</TD><TD><INPUT TYPE="text"';
  45.         print 'NAME="telefon" VALUE="'.$data2.'"></TD></TR>';
  46.         print '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>';
  47.      } elseif ($co == 'skasuj') {  // kasowanie
  48.        $wynik = mysql_query
  49.             ("DELETE FROM ksiazkatelefoniczna WHERE nr = '$id';");
  50.      }
  51.  
  52.      $wynik = mysql_query ("SELECT * FROM ksiazkatelefoniczna;");
  53.  
  54.      print "<TABLE CELLPADDING=8 BORDER=1>";
  55.      print "<TR><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>";
  56.      print "<TD><B>Telefon</B></TD><TD><B>Od</B></TD><TD><B>do</B></td>";
  57.            print "<td><b>ilość dni</b></td>";
  58.            echo workDays($_POST['data1'], $_POST['data2']);
  59.  
  60.      while ($rekord = mysql_fetch_array ($wynik)) {
  61.        $id = $rekord[0];
  62.        $imie = $rekord[1];
  63.        $nazwisko = $rekord[2];
  64.        $telefon = $rekord[3];
  65.                $data1 = $rekord[4];
  66.                $data2 = $rekord[5];
  67.                $iloscdni = $rekord[6];
  68.  
  69.        print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>$od</TD><TD>$do</TD><td>$iloscdni</td>";
  70.        print "<TD><A HREF=\"4-29.php?co=skasuj&id=$id\">skasuj</A></TD><TD>";
  71.        print "<A HREF=\"4-29.php?co=edytuj&id=$id\">edytuj</A></TD></TR>\n";
  72.      }
  73.      print "</TABLE>";
  74.      print '<FORM METHOD="POST">Nowy rekord:';
  75.      print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  76.      print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  77.      print 'NAME="imie"></TD></TR><TR><TD>Nazwisko:</TD><TD><INPUT ';
  78.      print 'TYPE="text" NAME="nazwisko"></TD></TR><TR><TD>Telefon:</TD>';
  79.      print '<TD><INPUT TYPE="text" NAME="telefon"></TD></TR>';
  80.            print '<TR><TD>od:</TD><TD><INPUT TYPE="text" ';
  81.      print 'NAME="data1"></TD></TR><TR><TD>do:</TD><TD><INPUT ';
  82.      print 'TYPE="text" NAME="data2"></TD></TR>';
  83.      print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';
  84.        
  85. function workDays($date1, $date2, $withStartDay = true) {
  86.    $date1=strtotime($date1);
  87.    $date2=strtotime($date2);
  88.    if ($date2===$date1 && !$withStartDay) return 0;
  89.    $char=1;
  90.    if ($date1>$date2)
  91.        {$datePom=$date1;$date1=$date2;$date2=$datePom;$char=-1;}
  92.    $count=0;
  93.    if (!$withStartDay)
  94.        $date1=strtotime('+1 day',$date1);
  95.    $date2=strtotime('+1 day',$date2);
  96.    $lastYear = null;
  97.    $hol=array('01-01','05-01','05-03','08-15','11-01','11-11','12-25','12-26');
  98.    while ($date1<$date2) {
  99.        $year = date('Y', $date1);
  100.        if ($year !== $lastYear){
  101.            $lastYear = $year;
  102.            $easter = date('m-d', easter_date($year));
  103.            $date = strtotime($year . '-' . $easter);
  104.            $easterSec = date('m-d', strtotime('+1 day', $date));
  105.            $cc = date('m-d', strtotime('+60 days', $date));
  106.            $hol[8] = $easter;
  107.            $hol[9] = $easterSec;
  108.            $hol[10] = $cc;
  109.        }
  110.        $weekDay=date('w',$date1);
  111.        if (!($weekDay==0 || $weekDay==6 || in_array(date('m-d',$date1),$hol)))
  112.            $count++;
  113.        $date1=strtotime('+1 day',$date1);
  114.    }
  115.    $count*=$char;
  116.    return $count;
  117. }
  118. ?>
  119.  
  120.  
  121.  
  122.  </BODY>
  123. </HTML>