#!/usr/bin/perl use strict; use warnings; use DBI; #server my $host=''; # DB-Name my $database=''; # Login Benutzer my $user=''; # Login Passwort my $pass=''; my $dbi=DBI->connect( "DBI:mysql:database=$database;host=$hostname", $user, $pass, { # script bei Fehler beenden RaiseError => 1, # Änderungen automatisch übernehmen # (macht das schreiben langsamer) AutoCommit => 1, }, ) or die("ERROR Connect DB".$DBI::errstr."\n"); my $sth = $dbh->prepare('Select * from vicidial_agent_log_temp order by user, event_time'); $sth->execute(); # alle Zeilen als hash-Referenzen im Array @storage ablegen my @storage; push(@storage,$_) while($sth->fetchrow_hashref); $sth->finish; my ($user_alt, $time_alt, $summe_alt); # das Array durch gehen for(my $pos=0; $pos<@storage; $pos++) { my $row=$storage[$pos]; next if( ... ); my $summe= $row->{pause} + $row->{'wait'}; if(defined($summe_alt) and $last_summe ... ) { # einen Eintrag zurück springen $pos--; $pos=0 if($pos<0); $row=$storage[$pos]; # aktualisieren eines Eintages: $dbh->do('Update vicidial_agent_log_temp Set gabcom_fehler=? Where user=?', undef, "AutoKorrektur", $row->{user}); # weitere Änderungen ... } $user_alt = $row->{user}; $time_alt = $row->{event_time}; $summe_alt = $row->{pause_sec} + $row->{wait_sec} + $row->{dispo_sec} + $row->{talk_sec}; } # Verbindung zur Datenbank beenden $dbh->disconnect;