#!C:\perl\bin\perl.exe -w #I USE THE LIBRARY use DBI; #WHERE I CONNECT WITH THE DATA BASE my $biblioperl = 'driver=Microsoft Access Driver (*.mdb);dbq=C:\\biblio.mdb'; my $dbh = DBI->connect("dbi:ODBC:$biblioperl",",") or die "$DBI::errstr\n"; #WHERE I COMPARED THE SELECTION AND IF IT IS IN THE TABLE THEN IT MUST SHOW IT $qrystrg = $ENV{'QUERY_STRING'}; $qrystrg =~ tr/+/ /; $qrystrg =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; ($varcampo1, $varcampo2) = split(/&/,$qrystrg); ($parcampo1,$varvalor1) = split(/=/,$varcampo1); ($parcampo2,$varvalor2) = split(/=/,$varcampo2); #QUERY $consulta = "SELECT Authors.Author, Titles.Title, Titles.[Year Published], Publishers.[Company Name], Titles.ISBN, Titles.Description, Titles.Notes FROM (Publishers INNER JOIN Titles ON Publishers.PubID = Titles.PubID) INNER JOIN (Authors INNER JOIN [Title Author] ON Authors.Au_ID = [Title Author].Au_ID) ON Titles.ISBN = [Title Author].ISBN WHERE (((Titles.[Year Published])=$varvalor1))"; $sth = $dbh->prepare($consulta); $rv = $sth->execute() or die $dbh->errstr; #print qq~ #~; #I USE A FILE HANDLER WHICH WILL ALLOW ME TO WRITE IN EVERYTIME I #DO THE QUERY open (FILEXML, " > biblio.XML"); print " FILEXML "; #print ""; while( @data = $sth->fetchrow_array() ) { # I GENERATE THE STRUCTURE OF THE XML FILE print FILEXML ""; print FILEXML "$data[0]"; print FILEXML "$data[1]"; print FILEXML "$data[2]"; print FILEXML "$data[3]"; print FILEXML "$data[4]"; print FILEXML "$data[5]"; print FILEXML "$data[6]"; print FILEXML ""; } print FILEXML ""; $sth->finish(); close(FILEXML); #print "Content-type: text/html\n\n"; #print "Location: http:\\localhost\resultado.html\"; $dbh->disconnect || warn "\nFalló al desconectar.\nError: $DBI::errstr\n"; exit;