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.
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>baza</TITLE>
</HEAD>
<BODY>
<? // Aplikacja daje nam możliwość odczytu, kasowania, dodawania
// i poprway danych w bazie.
die ("Nie można połączyć się z MySQL"); die ("Nie można połączyć się z bazą ksiazkatelefoniczna");
if ($co == 'dodaj') { // dodawanie rekordu
if ($imie && $nazwisko && $telefon && $od && $do) {
$query = "INSERT INTO ksiazkatelefoniczna (nr, imie, nazwisko, ";
$query .= "telefon, od, do, iloscdni) VALUES ('', '$imie', '$nazwisko', '$telefon', '$od', '$do'$iloscdni');";
}
} elseif ($co == 'popraw') { // poprawianie rekordu
if ($imie && $nazwisko && $telefon && $od && $do) {
$query = "UPDATE ksiazkatelefoniczna SET imie='$imie', nazwisko=";
$query .= "'$nazwisko', telefon='$telefon', od='$od', do='$do',iloscdni=$iloscdni, WHERE nr='$id';";
}
} elseif ($co == 'edytuj') { // przygotowanie do poprawek
$query = "SELECT * FROM ksiazkatelefoniczna where nr='$id';";
$id = $rekord[0]; $imie = $rekord[1]; $nazwisko = $rekord[2];
$telefon = $rekord[3]; $od = $rekord[4]; $do = $rekord[5]; $iloscdni=$rekord[6];
print '<FORM METHOD="POST">Poprawa rekordu:'; print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">'; print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$id.'"><TABLE>'; print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" '; print 'NAME="imie" VALUE="'.$imie.'"></TD></TR><TR><TD>Nazwisko:'; print '</TD><TD><INPUT TYPE="text" NAME="nazwisko"'; print 'VALUE="'.$nazwisko; print '"></TD></TR><TR><TD>Telefon:</TD><TD><INPUT TYPE="text"'; print 'NAME="telefon" VALUE="'.$telefon.'"></TD></TR>'; print '"></TD></TR><TR><TD>Od:</TD><TD><INPUT TYPE="text"'; print 'NAME="data1" VALUE="'.$data1.'"></TD></TR>'; print '"></TD></TR><TR><TD>Do:</TD><TD><INPUT TYPE="text"'; print 'NAME="telefon" VALUE="'.$data2.'"></TD></TR>'; print '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>'; } elseif ($co == 'skasuj') { // kasowanie
("DELETE FROM ksiazkatelefoniczna WHERE nr = '$id';");
}
$wynik = mysql_query ("SELECT * FROM ksiazkatelefoniczna;");
print "<TABLE CELLPADDING=8 BORDER=1>"; print "<TR><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>"; print "<TD><B>Telefon</B></TD><TD><B>Od</B></TD><TD><B>do</B></td>"; print "<td><b>ilość dni</b></td>"; echo workDays
($_POST['data1'], $_POST['data2']);
$id = $rekord[0];
$imie = $rekord[1];
$nazwisko = $rekord[2];
$telefon = $rekord[3];
$data1 = $rekord[4];
$data2 = $rekord[5];
$iloscdni = $rekord[6];
print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>$od</TD><TD>$do</TD><td>$iloscdni</td>"; print "<TD><A HREF=\"4-29.php?co=skasuj&id=$id\">skasuj</A></TD><TD>"; print "<A HREF=\"4-29.php?co=edytuj&id=$id\">edytuj</A></TD></TR>\n"; }
print '<FORM METHOD="POST">Nowy rekord:'; print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>'; print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" '; print 'NAME="imie"></TD></TR><TR><TD>Nazwisko:</TD><TD><INPUT '; print 'TYPE="text" NAME="nazwisko"></TD></TR><TR><TD>Telefon:</TD>'; print '<TD><INPUT TYPE="text" NAME="telefon"></TD></TR>'; print '<TR><TD>od:</TD><TD><INPUT TYPE="text" '; print 'NAME="data1"></TD></TR><TR><TD>do:</TD><TD><INPUT '; print 'TYPE="text" NAME="data2"></TD></TR>'; print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';
function workDays($date1, $date2, $withStartDay = true) {
if ($date2===$date1 && !$withStartDay) return 0;
$char=1;
if ($date1>$date2)
{$datePom=$date1;$date1=$date2;$date2=$datePom;$char=-1;}
$count=0;
if (!$withStartDay)
$lastYear = null;
$hol=array('01-01','05-01','05-03','08-15','11-01','11-11','12-25','12-26'); while ($date1<$date2) {
$year = date('Y', $date1); if ($year !== $lastYear){
$lastYear = $year;
$easter = date('m-d', easter_date
($year)); $hol[8] = $easter;
$hol[9] = $easterSec;
$hol[10] = $cc;
}
$weekDay=date('w',$date1); if (!($weekDay==0
|| $weekDay==6
|| in_array(date('m-d',$date1),$hol))) $count++;
}
$count*=$char;
return $count;
}
?>
</BODY>
</HTML>