while(@spieler) { my $sp1 = shift(@spieler); my $sp2 = shift(@spieler); $testpaar = testpaarung($sp1,$sp2,$runde); if($testpaar == 0) { push (@asql, "INSERT IGNORE INTO runde$runde (spieler1, spieler2, sperg1, sperg2, sp1avg, sp2avg) VALUES ('$sp1', '$sp2', 0, 0, 0, 0);"); } if($testpaar == 1) { unshift(@spieler,$sp2); for(my $ii = 1;$ii < @spieler;$ii++) { $testpaar = testpaarung($sp1,$spieler[$ii],$runde); if($testpaar == 0) { push (@asql, "INSERT IGNORE INTO runde$runde (spieler1, spieler2, sperg1, sperg2, sp1avg, sp2avg) VALUES ('$sp1', '$spieler[$ii]', 0, 0, 0, 0);"); splice(@spieler,$ii,0); last; } } } } sub testpaarung { my $sp1 = shift; my $sp2 = shift; my $runde = shift; my $testsp = 0; for(my $i = 1; $i < $runde; $i++) { my $testdb = $dbh->prepare("SELECT COUNT(*) FROM runde$i WHERE (spieler1 = '$sp1' AND spieler2 = '$sp2') OR (spieler1 = '$sp2' AND spieler2 = '$sp1');"); $testdb->execute(); $testsp = $testdb->fetchrow_arrayref()->[0]; $exe->finish; last if($testsp > 0); } return($testsp); }