Weiter Zurück [Inhalt] Online Suche im Handbuch

56.5 Seitenweise Ausgabe mit ASCII Datenbanken

Eine Möglichkeit, sich seitenweise Daten aus einer ASCII Tabelle ausgeben zu lassen, soll an dieser Stelle ebenfalls nicht unerwähnt bleiben.

Beim Betrieb einer CDROM - Datenbank http://www.cd-special.de hat sich herausgestellt, daß SQL Datenbanken bei Datensätzen von fast 1.000.000 Einträge zwar sehr schnell sind, es jedoch einige User schafften, durch schnelles Blättern die Datenbank an die Grenze Ihrer Leistungsfähigkeit zu bringen. Daher sind wir den Weg der Zwischenspeicherung in ASCII Dateien gegangen. Nach einer Suche kann dann der User beliebig in den Datensätzen blättern, ohne daß die MySQL Datenbank in Anspruch genommen wird. Nach der Suche in der MySQL Datenbank werden die result sets über die Zuordnung der IP-Adressen des Clients im Internet einer ASCII Datei zugeordnet, in welcher dann der User in Ruhe blättern kann. Dieses läßt sich auch mit Cookies erreichen. Nach einiger Zeit werden diese temporären Dateien dann gelöscht. Hier ein Stück PERL Code, welches eigenständig so lauffähig ist:

#!/usr/bin/perl 
#---------------------------------+
# Simple Database Engine 1.0      |
# by Pasha Golovko                |
# webmaster@find.virtualave.net   |
# http://find.virtualave.net      |
# More FREE scripts available at: |
# http://find.virtualave.net/00/  |
#---------------------------------+
#
# Chmod:
# database.cgi  755     (rwxr-xr-x)
# database.txt  777     (rwxrwxrwx)
# index.htm     777     (rwxrwxrwx)
#
# Display some header
$html1 = qq~
<html>
<head>
<title>My simple database

<body>
~;

# Display some footer
$html2 = qq~


~;

# Open my silly database
open(LOGFILE, "<database.txt"); 
@entries = <LOGFILE>; 
close LOGFILE; 


# Open the output file
open (HTML,">index.htm");


                # Print header
                print HTML"$html1";


# Now, lets split what ever we got in the database ...
foreach $line (@entries) { 
        @fields = split(/\|/,$line); 


                # ... and print what ever fields we got from database
                print HTML "$fields[0] - $fields[1] - $fields[2] -
$fields[3] <br>";
}; 
                # Print footer
                print HTML"$html2";
# Close the output file
close (HTML);
# Print some visual output, when your script finished working with database
:)
print "Content-type: text/plain\n\n";
print "Done!";


Weiter Zurück [Inhalt] Online Suche im Handbuch