#!/usr/bin/perl ############################################################################## # Perl-Script for Searching Adress-Database (c) Klaus Schönenberg Lohmar # schoenenberg@lohmar.org # Searching the cd-table in Iwalewa-Database (CD-Shop+Media) # # Relaeses # 2001-02-21 KS first release # # require "main.lib"; require "para.lib"; require "db.lib"; &make_datum; # Presetting $err=0; # read The INPUT BUFFER from .htm FORM-TAG &read_args; $search=$ARGS{search}; # Wenn Args gesetzt, darf der Buffer nicht ausgelesen werden, # weil die Args aus der Uebergabe kommen und nicht aus der FORM if ($search eq "") { # read The INPUT BUFFER from .htm FORM-TAG &read_buffer; $look_key=$FORM{look_key}; $field=$FORM{field}; $sort=$FORM{sort}; $desc=$FORM{desc}; $label=$FORM{label}; $style=$FORM{style}; $jahr=$FORM{jahr}; $bild=$FORM{bild}; } else { $field=$ARGS{field}; $key=$ARGS{key}; $key=~tr/_/ /s; if ($field eq "interpret") { $look_key=$key; } if ($field eq "label") { $look_key=""; $label=$key; } $msg="S:$search F:$field K:$key "; &write_log; # vorbelegen $bild="on"; } # prepare html-Header &print_html_header; # prepare and open database &open_dbi; # prepare sql-statement if ($look_key eq "#" ){ $look_key="afrika"; } if (length($field) == 0) { $field = "ALL" } if ($label eq "none") { $label ="" } if ($style eq "none") { $style ="" } if ($jahr eq "none") { $jahr ="" } # Such_Optionen if ($look_key) {$so1=" Keyword:".$look_key}else{$so1=" no Keyword"} if ($label) {$so2=" Label:".$label} if ($style) {$so3=" Style:".$style} if ($jahr) {$so4=" Jahr:".$jahr} if ($field) {$so5=" Feld:".$field} if ($sort) {$so6=" Sort:".$sort} if ($desc) {$so7=" Desc:".$desc} $such_optionen=$so1.$so2.$so3.$so4.$so5.$so6.$so7." "; if ($look_key || $label || $style || $jahr ) { if ($look_key eq "*") { # select all $sql1="select * from cd"; $sql2=""; } else { $sql1="select * from cd where ("; if ($field eq "ALL") { # Search all columns $sql2=" interpret like '%".$look_key."%'"; $sql2=$sql2." or titel like '%".$look_key."%'"; $sql2=$sql2." or nummer like '%".$look_key."%'"; $sql2=$sql2." or label like '%".$look_key."%'"; $sql2=$sql2." or style like '%".$look_key."%'"; } else { # Search specific column $sql2=$field . " like '%" . $look_key . "%'"; } $sql2=$sql2.")"; if ($look_key eq "") { $sql1=""; $sql2=""; } if (length($label.$style.$jahr) >0) { if ($sql1) { $sql2=$sql2." and ("; } else { $sql2="select * from cd where ("; } if ($label ne "") { $sql2=$sql2."label like '%".$label."%'" } if ($style ne "") { $sql2=$sql2."style like '%".$style."%'" } if ($jahr ne "") { $sql2=$sql2."nummer like '%".$jahr ."%'" } $sql2=$sql2.")"; } # Stripping den ganzen Leermuell $sql2=~tr/ / /s; $sql2=~tr/ / /s; } if ($sort eq "No-Sort" || $sort eq "") { $sql_order=" order by vertrieb"; } else { $sql_order=" order by " . $sort; if ($desc eq "on") { $sql_order=$sql_order . " desc"; } } # put togehter the sql-statement-parts and lowercase them $sql="\L$sql1$sql2$sql_order\E" ; # prepare and xcute sql &prepare_sql_dbi; if ($rv eq "0E0") { $rv="0"; &print_html_no_records_found; &print_html_feeter; } else { # getting found rows from database and put them into variables &print_result_header; &print_result_rows; &print_result_feeter; &print_html_feeter; } # end if rows found # write th log-file #&write_log; } else { &print_html_no_keyword; &print_html_feeter; } # end if search-word given # # End of program ############################################################################### ############################################################################### # and now the subroutines # # # The Log file # sub write_log { &make_datum; open (LOG,">> ../LOGS/search.log") or die "Cannot write to Log File"; $log=$dat02 . " | " . $rv . " | " . $look_key . " | " . $sort . " | " . $desc . " | " . $msg . " \n"; print LOG $log; close LOG; } # # All the HTML Stuff # # # The Main Header sub print_html_header { print "Content-type: text/html\n\n"; print < AFRICA-Iwalewa´s CD-Shop, CDs, Neuvorstellungen, Reviews EOF $htmlfile="../include/meta.inc"; &read_file; $htmlfile="../include/styles.inc"; &read_file; $htmlfile="../include/top.inc"; &read_file; print <


EOF } sub print_html_no_keyword { print <
F E H L E R / E R R O R :

Du must min. zwei Buchstaben als Suchbegriff eingeben, um ein Ergebnis zu erhalten
/
You must give at least two letters as a keyword to get a result.

(unnit einfach wo draufhacken ohne Nachdenken)



Zurück / Back
EOF } sub print_html_no_records_found { print <
H I N W E I S / W A R N I N G :

Kein Ergebnis - keine CDs mit diesen Angaben gefunden
/
No Result - No CDs found

Zurück / Back
EOF } sub print_result_header { $i1=index($p_gefunden,"_"); $gefunden=substr($p_gefunden,0,$i1 - 1)." ".$rv." " .substr($p_gefunden,$i1 + 2,55); print "
$gefunden Titel ($such_optionen)
"; } sub print_result_rows { while(@row = $sth->fetchrow_array) { &fetch_row_dbi_cd; &build_line; } } sub build_line { $z++; $jahr=substr($nummer,0,4); if ($vertrieb eq "WM") { # World Music Shop $link="http://www.globalmusicshop.de/sites/info/001/".substr($nummer,4,4)."_d.htm"; } else { $link="../media/".$jahr."/".$nummer.".htm"; } if (!$breite) { $breite="60" } if (!$hoehe) { $hoehe="60" } if ($vertrieb eq "WM") { # World Music Shop $src="http://www.globalmusicshop.de/sites/cover/001/".substr($nummer,4,4)."_s.jpg"; $bild="on"; $deeplink="Die CD wird präsentiert vom WOMEX Shop"; } else { $src="../media/".$jahr."/gifs/".$image."_s.jpg"; open(TEST,$src) or $src="../gifs/info.gif"; close(TEST); $deeplink=""; } if ($bild eq "on") { $cdimage=""; } else { $cdimage=""; } if ($vertrieb eq "  ") {$vertrieb=""} # else{$vertrieb="(".$vertrieb.")"} if (length($label) != 0) { $lab=" Label/Vertrieb:".$label; } $kaufen=""; if ($vertrieb && $preis) { $buy_text=$vertrieb.":".$nummer." - ".$titel." ".$interpret; $buy_geld=$preis; $kaufen="\ "; } $csound=""; if ($sound) { $csound=""; } print <
EOF if ($z == 5) { $z=0; print < Media Homepage
Zurück zur Suche  / Back to Search
Seitenanfang / Start of page
Seitenende / End of page EOF } print "
$cdimage$interpret - $titel
$p_test $style $lab $vertrieb Erschienen:$jahr $voe
$p_test $kaufen $csound $deeplink
".$p_test; } sub print_result_feeter { print <
Ende der Liste / End of List


Media Homepage Zurück zur Suche / Back to Search Seitenanfang / Start of Page
EOF } sub print_html_feeter { print "


"; if ($gefunden < 5) { print "









"; } print "

"; $htmlfile="../include/feeter2.inc"; &read_file; print ""; } # Read the file and print it´s content - file $htmlfile must be given # sub read_file { open(IN,$htmlfile) or die "Cannot open $htmlfile for include"; while() { print $_ } close(IN); }