Veranstaltungen

<% my $out; my $maxtime = time + 60*60*24*30; my $sql = qq( SELECT va_objekte.*, DATE_FORMAT(va_objekte.datum,'%d.%m.%Y') AS datum, DATE_FORMAT(va_objekte.datum_bis,'%d.%m.%Y') AS datum_bis, DATE_FORMAT(va_objekte.datum,'%H:%i') AS uhrzeit, UNIX_TIMESTAMP(va_objekte.datum) AS unixtime, DAYOFWEEK(va_objekte.datum) AS wochentag, DATE_FORMAT(va_objekte.datum_bis,'%H:%i') AS datum_uhrzeit_bis, va_locations.name AS ort_name, va_locations.text AS ort_beschreibung, va_veranstalter.name AS veranstalter_name, 1 FROM va_objekte LEFT JOIN va_locations ON va_locations.id = va_objekte.location LEFT JOIN va_veranstalter ON va_veranstalter.id = va_objekte.veranstalter_id WHERE 1 AND va_objekte.datum >= NOW() AND UNIX_TIMESTAMP(va_objekte.datum) <= $maxtime AND va_objekte.mandant_id = "40" AND va_objekte.attribute REGEXP "[[:<:]](242)[[:>:]]" GROUP BY va_objekte.id ORDER BY va_objekte.datum ASC ); my $dbh = &mysql_connect('va'); my $sth = $dbh->prepare( $sql ); $sth->execute() || &mysql_error($sth); #

Mittwoch, 06.09.2006

my @objekte; my %familien; while (my $objekt = $sth->fetchrow_hashref) { if ($objekt->{familie} && ($objekt->{familie} ne "X")) { if (exists($familien{"$objekt->{familie}"})) { next; } else { $familien{"$objekt->{familie}"} = 1; } } $objekt->{text} =~ s/\n//g; push(@objekte, $objekt) if $objekt->{unixtime}; } # sub _FindValue { # foreach (@{$_[0]}) { # return $_ if ($_ eq $_[1]); # } # return ""; # } # # my @rands; # my $max = @objekte > 5 ? 5 : @objekte; # while (@rands < $max) { # my $r = int(rand(@objekte)); # push(@rands, $r) if (&_FindValue(\@rands, $r) eq ""); # } # @rands = sort(@rands); # sub _SortObjekte { return 1 if ($a->{unixtime} > $b->{unixtime}); return 0 if ($a->{unixtime} == $b->{unixtime}); return -1; } my $max = @objekte > 5 ? 5 : @objekte; my @rands; foreach (1..$max) { push (@rands, (splice(@objekte, int(rand(@objekte)), 1))[0]); } @rands = sort (_SortObjekte @rands); my $lastgruppe; my @wds = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"); foreach my $objekt (@rands) { # my $objekt = (splice(@objekte, $rands[$_], 1))[0]; my ($d, $m, $y, $wd) = (localtime($objekt->{unixtime}))[3,4,5,6]; my $gruppe = sprintf("%s, %02d.%02d.%04d", $wds[$wd], $d, $m+1, $y+1900); $out .= qq(

$gruppe

) if ($lastgruppe ne $gruppe); $lastgruppe = $gruppe; $out .= qq( ); } return qq(
$out
); %>
Highlights drucken   |   mehr