# Connection procedure for server init, store handle in global var 'db' proc mysql:connectdb {} { global sql db set db [logexec "mysqlconnect -host $sql(host) -user $sql(user) -password $sql(pass) -db $sql(db) -port $sql(port) -socket /var/run/mysqld/mysqld.sock" 0 "Connecting to mysql-server"] } # Database ping to prevent timeout proc mysql:ping {} {global db; mysql::ping $db} # Date and Time processing proc mysql:sqldate2timestamp {sqldate} { set date [string range $sqldate 5 6]/[string range $sqldate 8 9]/[string range $sqldate 0 3] if [catch "clock scan $date" timestamp] {return -1} {return $timestamp} } proc mysql:timestamp2sqldate {timestamp} { return [clock format $timestamp -format "%Y-%m-%d"] } proc mysql:date2sqldate {date} { if [scan $date "%02d.%02d.%04d" d m y]==3 {return $y-$m-$d} {return "0000-00-00"} } proc mysql:htmltable {module name table fields descr fieldstyle conversion length control} { global db upvar cgi cgi mysql::ping $db set htmlout "" if [info exists cgi($name)] {set control $cgi($name)} set orderby [lindex $fields [expr [string range $control 0 1]]] set order [lindex "ASC DESC" [string index $control 2]] set page [expr [string range $control 3 5]] htmlout {
} htmlout {} for {set x 0} {$x<[llength $descr]} {incr x} { set image "" set description [lindex $descr $x] set controlstring [format %02d [lsearch $descr $description]] if [string match $controlstring* $control] { set image "" set controlstring $controlstring[expr abs([string index $control 2]-1)] } {set controlstring ${controlstring}0} set controlstring ${controlstring}[format "%03d" $page] htmlout "" } htmlout {} set x 0 foreach row [lrange [set rows [mysql::sel $db "SELECT [join $fields ,] from $table ORDER BY $orderby $order" -list]] [expr $page*$length] [expr ($page+1)*$length-1]] { incr x; set even [lindex "even odd" [expr $x%2]] htmlout "" for {set y 0} {$y<[llength $row]} {incr y} { set field [lindex $row $y] catch [lindex $conversion $y] htmlout "" } htmlout "" } htmlout "
$description $image
$field
Seite " for {set x 0} {$x<[expr ([llength $rows]/$length)+1]} {incr x} { set control [string replace $control 3 5 [format "%03d" $x]] htmlout "[expr $x+1]" } htmlout "
" return $htmlout }