#!/usr/bin/perl
 use strict;
 use warnings;
 use DBI; 
 #use CGI::Carp qw(fatalsToBrowser);
 use CGI;

my $cgi = CGI->new(); 


print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
#print "<html><head><title>Hallo Welt</title></head><body>\n";
#print "<h1>Johannes Temperature</h1>\n";
#for my $i (1..25) {
#    print "Das Kubik von $i ist " . $i * $i * $i. ".\n<br>";
#};
 
 #Parameter

my $rowlimit = 5;

my @param_names = $cgi->param();
foreach my $p (@param_names) {
  my $value = $cgi->param($p);
  #print "Param $p = $value<p>\n";
  if ($p eq 'limit') { $rowlimit = $value }
}
 
 
 # Deklaration der noetigen Variablen fuer die Verbindung
 # Falls die Datenbank nicht lokal liegt, muss man zusaetzlich
 # die Variablen $db_host und/oder $db_port angeben
 
my $db_host = '62.108.32.182';
my $db_port = 3306;
 
 my ($db_user, $db_name, $db_pass) = ('bbplj_tempdbuser', 'bbpljxqt_tempdb', '2~Ekk05q');
 
 # Verbindung zur DB herstellen
 # alternativ ( wenn DB nicht lokal ):
 my $dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host;port=$db_port", 
                          "$db_user", "$db_pass");
 # Man kann auch noch Fein-Tuning betreiben, z.B. mit dem RaiseError- oder dem AutoCommit-Switch.
 # Naeheres dazu steht in der Dokumentation des Modules DBI.
 #my $dbh = DBI->connect("DBI:mysql:database=$db_name", $db_user, $db_pass);
 
 # Vorbereiten der SQL-Anweisung
 
# my $query_test = $dbh->prepare('SELECT substr(mytime,12,5), round(least( col01, col02), 1), col01, col02 FROM `temp_table` WHERE 1 order by mytime DESC LIMIT 10');
# my $query_test = $dbh->prepare('SELECT substr(mytime,12,5), round(least( col05, col02, col07), 1), col02, col05, col07 FROM `temp_table` WHERE 1 order by mytime DESC LIMIT 100');
$dbh->do( 'SET @row_number = 0;' );
 my $query_test = $dbh->prepare( 'SELECT (@row_number:=@row_number + 1) AS num, substr(mytime,12,5), round(least( ifnull(col05,50), ifnull(col03,50), ifnull(col07,50), ifnull(col19,50)), 1) FROM `temp_table` WHERE 1 HAVING (num-1)%7 = 0 order by mytime DESC LIMIT ' . $rowlimit);
 
 # Ausfuehren der Anweisung
 
 $query_test->execute() or die $query_test->err_str;
 
 # Hier koennte weitergehende Verarbeitung erfolgen, beispielsweise eine Auflistung aller Eintraege:
 #
 
#print "Die letzten Temperaturen\n<br>";
 
#while (my ($col_1, $col_2, $col_3) = $query_test->fetchrow_array() ) {
print '<table style="width:60%">';
 while (my @col = $query_test->fetchrow_array() ) {

#    print   "$col[0] ";
print "<tr><td>";
     print   "$col[1]";
	 print "</td><td>";
     print  "$col[2] &deg;C</td></tr>";
	 #print "</td></tr>";
#     print  "$col[3] ";
#     print  "$col[4] ";
#     print  "$col[5]";
#	 print "<br>\n";
 }
print "</table>";
#print "</body></html>\n"; 
 # Nun erstellen wir doch noch gleich eine neue Tabelle
 # Statt der Möglichkeit mittels vorherigem prepare() und execute(),
 # benutzen wir hier die einfache Methode do()
 
 #  my $create_query = '
 #	CREATE TABLE `nocheinetabelle` (
 #	  `spalte1` varchar(10) NOT NULL,
 #	  `spalte2` varchar(10) NOT NULL,
 #	  `spalte3` varchar(10) NOT NULL,
 #	  `spalte4` varchar(10) NOT NULL
 #	)';
 
 # $dbh->do($create_query);
 
 #  INSERT INSERT INSERT
# invoke the ConnectToMySQL sub-routine to make the database connection
#$connection = ConnectToMySql($database);

# set the value of your SQL query
 #my $query = "insert into nocheinetabelle (spalte1, spalte2,spalte3,spalte4) 
 #	values (?, ?, ?, ?) ";

# prepare your statement for connecting to the database
#my $statement = $dbh->prepare($query);

# execute your SQL statement
#$statement->execute('John2', 'Smith2', '100 Main Street2', 'abc2');


 # Nachdem alles erledigt ist, schließen wir die Datenbankverbindung
 
 $dbh->disconnect();
