Moin, du einer!
#Tageszaehler
for($daycount=0;$daycount<=6;$daycount++)
{
$wochentag = show_wochentag($daycount);
#Liest alle Batcheinträge des angegebenen Tages ein (von der betroffenen Person)
$select = "select date_format(date_add('$wochenstart_datum', interval $daycount day),'%Y-%m-%d') as datum";
my($tmp) = $dbh->prepare($select);
$tmp->execute();
$hash_tmp = $tmp->fetchrow_hashref;
$tages_dat = $hash_tmp->{datum};
#Tagesname wird aus Unterfunktion gerufen und ausgegeben
$tagesname = show_tagname($daycount);
print "</tr>";
Tipp: Zeilenanfang einer Tabelle mit <tr>. :)
print "<td>$tag_name</td>";
#Batcheinträge anzeigen
my($sth) = $dbh->prepare("select * from batch where pers_id = $personen_id and batch_datum = '$tages_dat' order by batch_zeit");
$sth->execute();
$maxrow = 0;
while($hash_eintraege = $sth->fetchrow_hashref)
{
print "<td>$hash_eintraege->{batch_zeit}</td>";
$maxrow++;
if($maxrow%2 != 0)
{
($h,$m,$s) = split(/:/,$hash_eintraege->{batch_zeit});
$ein =0;
Diese Zuweisung ist redundant. $ein wird eine Zeile weiter unten zugewiesen.
$ein = $h*3600+$m*60+$s;
}
else
{
($h,$m,$s) = split(/:/,$hash_eintraege->{batch_zeit});
$aus = 0;
redundant...
$aus = $h*3600+$m*60+$s;
Wurde $diff irgendwo initialisiert?
$diff = $diff+$aus-$ein;
}
$tag_total = $tag_total+$diff;
Wurde $tag_total mal irgendwo initialisiert? Jedenfalls nicht in diesem Bereich, den du gepostet hast. Abgesehen davon: In $diff steht doch schon das Tagestotal drin.
Entsprechend wären die nachfolgenden Umrechnungen anzupassen.
}
#Tagestotal berechnen und ausgeben
$stunde = "".int($tag_total/3600)."";
$minute = "".int(($tag_total-($stunde*3600))/60)."";
$sekunde = "".int(($tag_total-($stunde*3600)-($minute*60)))."";
$wochentotal += $tag_total;
$tag_total = 0;
zeitformat();
$zeit = "$stunde:$minute:$sekunde";
$stunde = 0;
$minute = 0;
$sekunde = 0;
print "<td bgcolor = #99CCFF><li>$zeit</td>";
print "</tr>";
$zeit =0;
}
Generallösung: Ganz am Anfang des Scripts
use strict;
Dann wirst du gezwungen, deine Variablen alle zu definieren. Undefinierte Variablen (mit irgendwelchen Speicherresten als Wert) werden nicht mehr genommen.
- Sven Rautenberg