MrNewbie
02-23-2001, 04:39 PM
Here is my code so far for my database program, its probably really messy and I'm sure theres better ways of doing a lot of it, but I like it so far, it works and I'll concentrating on making it more effieient and better after it works. Its really not finished yet though as a few of the functions are missing. I'll also remove some of the hardcoding once it works too.
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
my $action;
$action = param('action');
if($action eq 'enterrec')
{
print header();
print "<HTML><HEAD><TITLE>Add Video</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>Enter Video Details To Add To Database:</b></font></p><p> </p>";
print "<p align=\"center\">\n<form action=\"vbase.pl\" method=\"post\">\n";
print "<font face=\"Arial\" size=\"2\"><b>";
print "<input type=\"hidden\" value=\"addrec\" name=\"action\">\n";
print "Title: <INPUT TYPE=\"text\" NAME=\"title\" SIZE=\"30\"><br><br>\n";
print "Genre: <INPUT TYPE=\"text\" NAME=\"genre\" SIZE=\"30\"><br><br>\n";
print "Rating: <INPUT TYPE=\"text\" NAME=\"rating\" SIZE=\"30\"><br><br>\n";
print "Year: <INPUT TYPE=\"text\" NAME=\"year\" SIZE=\"30\"><br><br>\n";
print "Director: <INPUT TYPE=\"text\" NAME=\"director\" SIZE=\"30\"><br><br>\n";
print "Stars:<br><TEXTAREA NAME=\"stars\" ROWS=\"4\" COLS=\"30\"></TEXTAREA><br><br>\n";
print "Available (Checked = Yes): <INPUT TYPE=\"checkbox\" NAME=\"av\" VALUE=\"checked\"></b></font><br><br>\n";
print "<INPUT TYPE=\"image\" SRC=\"../submit.gif\" BORDER=\"0\" ALT=\"Submit!\">\n";
print "</form>\n";
print end_html;
}
elsif($action eq 'addrec')
{
my $title = param('title'); #Sets title parameter to variable title.
my $genre = param('genre'); #Sets genre parameter to variable genre.
my $rating = param('rating'); #Sets rating parameter to variable rating.
my $year = param('year'); #Sets year parameter to variable year.
my $director = param('director'); #Sets director parameter to variable director.
my $stars = param('stars'); #Sets stars parameter to variable stars.
my $av = param('av'); #Sets availability paremeter to variable av.
&addrec($title, $genre, $rating, $year, $director, $stars, $av);
}
elsif($action eq 'delrec')
{
my $title = param('title');
&delrec();
}
elsif($action eq 'search')
{
my $sstring = param('sstring');
&search($sstring);
}
elsif($action eq 'modrec')
{
my $title = param('title');
&modrec();
}
else{
print header();
print "<HTML><HEAD><TITLE>Search For Video</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>Enter Film Title To Search For:</b></font></p><p> </p>";
print "<p align=\"center\">\n<form action=\"vbase.pl\" method=\"post\">\n";
print "<input type=\"hidden\" value=\"search\" name=\"action\">\n";
print "<INPUT TYPE=\"text\" NAME=\"sstring\" SIZE=\"30\"><br><br>\n";
print "<INPUT TYPE=\"image\" SRC=\"../submit.gif\" BORDER=\"0\" ALT=\"Submit!\">\n";
print "</form>\n";
print end_html;
}
sub addrec{
my $av;
my($title, $genre, $rating, $year, $director, $stars, $avr) = @_;
if($avr eq 'checked'){
$av = 1;
}
else{
$av = 0;
}
if (open(VDB, ">>vbase.db"))
{
printf(VDB "%s\t%s\t%s\t%s\t%s\t%s\t%d\n", $title, $genre, $rating, $year, $director, $stars, $av);
close VDB;
print header();
print "<HTML><HEAD><META HTTP-EQUIV=\"refresh\" content=\"10;URL=http://www.super8video.f2s.com/cgi-bin/vbase.pl?action=enterrec\">";
print "<TITLE>Record Added!</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>Film Record Added!</font><br>";
print "<font face=\"Arial\" size=\"2\">Taking You Back To Add A Record Menu In 10 Seconds</b></font></p><p> </p>";
print end_html;
}
else{
close VDB;
print header();
print "<HTML><HEAD><META HTTP-EQUIV=\"refresh\" content=\"10;URL=http://www.super8video.f2s.com/cgi-bin/vbase.pl?action=enterrec\">";
print "<TITLE>Failed Adding Record</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>File Opening Failed!</font><br>";
print "<font face=\"Arial\" size=\"2\">Taking You Back To Add A Record Menu In 10 Seconds</b></font></p><p> </p>";
print end_html;
}
}
sub search{
my ($line, $sstring, $first, $title, $genre, $rating, $year, $director, $stars, $av);
my @record;
$sstring = $_[0];
$sstring = lc($sstring);
}
Basically its an online database in perl for a school project but there some things I just cant get working. Mainly the search part. (The $sstring is being made lowercase for a comparison with the film title which will also be made lowercase for the comparison.)
I tried something like this to get the search to work (It searches by film title).
sub search{
my ($line, $sstring, $first, $title, $genre, $rating, $year, $director, $stars, $av);
my @record;
$sstring = $_[0];
$sstring = lc($sstring);
if(open(FILE, "vbase.db")){
while($line=<FILE> )
{
($first) = split(/\t/,$line);
if($first eq $sstring){
(@record) = split(/\t/,$line);
($title, $genre, $rating, $year, $director, $stars, $av) = @record;
print "@record";
}
}
}
}
I guess I'm overlooking something but I can't figure out what it is. Can any of you suggest what I've missed?
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
my $action;
$action = param('action');
if($action eq 'enterrec')
{
print header();
print "<HTML><HEAD><TITLE>Add Video</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>Enter Video Details To Add To Database:</b></font></p><p> </p>";
print "<p align=\"center\">\n<form action=\"vbase.pl\" method=\"post\">\n";
print "<font face=\"Arial\" size=\"2\"><b>";
print "<input type=\"hidden\" value=\"addrec\" name=\"action\">\n";
print "Title: <INPUT TYPE=\"text\" NAME=\"title\" SIZE=\"30\"><br><br>\n";
print "Genre: <INPUT TYPE=\"text\" NAME=\"genre\" SIZE=\"30\"><br><br>\n";
print "Rating: <INPUT TYPE=\"text\" NAME=\"rating\" SIZE=\"30\"><br><br>\n";
print "Year: <INPUT TYPE=\"text\" NAME=\"year\" SIZE=\"30\"><br><br>\n";
print "Director: <INPUT TYPE=\"text\" NAME=\"director\" SIZE=\"30\"><br><br>\n";
print "Stars:<br><TEXTAREA NAME=\"stars\" ROWS=\"4\" COLS=\"30\"></TEXTAREA><br><br>\n";
print "Available (Checked = Yes): <INPUT TYPE=\"checkbox\" NAME=\"av\" VALUE=\"checked\"></b></font><br><br>\n";
print "<INPUT TYPE=\"image\" SRC=\"../submit.gif\" BORDER=\"0\" ALT=\"Submit!\">\n";
print "</form>\n";
print end_html;
}
elsif($action eq 'addrec')
{
my $title = param('title'); #Sets title parameter to variable title.
my $genre = param('genre'); #Sets genre parameter to variable genre.
my $rating = param('rating'); #Sets rating parameter to variable rating.
my $year = param('year'); #Sets year parameter to variable year.
my $director = param('director'); #Sets director parameter to variable director.
my $stars = param('stars'); #Sets stars parameter to variable stars.
my $av = param('av'); #Sets availability paremeter to variable av.
&addrec($title, $genre, $rating, $year, $director, $stars, $av);
}
elsif($action eq 'delrec')
{
my $title = param('title');
&delrec();
}
elsif($action eq 'search')
{
my $sstring = param('sstring');
&search($sstring);
}
elsif($action eq 'modrec')
{
my $title = param('title');
&modrec();
}
else{
print header();
print "<HTML><HEAD><TITLE>Search For Video</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>Enter Film Title To Search For:</b></font></p><p> </p>";
print "<p align=\"center\">\n<form action=\"vbase.pl\" method=\"post\">\n";
print "<input type=\"hidden\" value=\"search\" name=\"action\">\n";
print "<INPUT TYPE=\"text\" NAME=\"sstring\" SIZE=\"30\"><br><br>\n";
print "<INPUT TYPE=\"image\" SRC=\"../submit.gif\" BORDER=\"0\" ALT=\"Submit!\">\n";
print "</form>\n";
print end_html;
}
sub addrec{
my $av;
my($title, $genre, $rating, $year, $director, $stars, $avr) = @_;
if($avr eq 'checked'){
$av = 1;
}
else{
$av = 0;
}
if (open(VDB, ">>vbase.db"))
{
printf(VDB "%s\t%s\t%s\t%s\t%s\t%s\t%d\n", $title, $genre, $rating, $year, $director, $stars, $av);
close VDB;
print header();
print "<HTML><HEAD><META HTTP-EQUIV=\"refresh\" content=\"10;URL=http://www.super8video.f2s.com/cgi-bin/vbase.pl?action=enterrec\">";
print "<TITLE>Record Added!</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>Film Record Added!</font><br>";
print "<font face=\"Arial\" size=\"2\">Taking You Back To Add A Record Menu In 10 Seconds</b></font></p><p> </p>";
print end_html;
}
else{
close VDB;
print header();
print "<HTML><HEAD><META HTTP-EQUIV=\"refresh\" content=\"10;URL=http://www.super8video.f2s.com/cgi-bin/vbase.pl?action=enterrec\">";
print "<TITLE>Failed Adding Record</TITLE></HEAD>\n";
print "<body bgcolor=\"#000000\" background=\"../bkgnd.gif\" text=\"#FF0000\" link=\"#E4B407\" alink=\"#E4B407\" vlink=\"#E4B407\">";
print "<p> </p>\n<p> </p>\n<p> </p>\n<p> </p>\n<p align=\"center\">";
print "<font face=\"Arial\" size=\"3\"><b>File Opening Failed!</font><br>";
print "<font face=\"Arial\" size=\"2\">Taking You Back To Add A Record Menu In 10 Seconds</b></font></p><p> </p>";
print end_html;
}
}
sub search{
my ($line, $sstring, $first, $title, $genre, $rating, $year, $director, $stars, $av);
my @record;
$sstring = $_[0];
$sstring = lc($sstring);
}
Basically its an online database in perl for a school project but there some things I just cant get working. Mainly the search part. (The $sstring is being made lowercase for a comparison with the film title which will also be made lowercase for the comparison.)
I tried something like this to get the search to work (It searches by film title).
sub search{
my ($line, $sstring, $first, $title, $genre, $rating, $year, $director, $stars, $av);
my @record;
$sstring = $_[0];
$sstring = lc($sstring);
if(open(FILE, "vbase.db")){
while($line=<FILE> )
{
($first) = split(/\t/,$line);
if($first eq $sstring){
(@record) = split(/\t/,$line);
($title, $genre, $rating, $year, $director, $stars, $av) = @record;
print "@record";
}
}
}
}
I guess I'm overlooking something but I can't figure out what it is. Can any of you suggest what I've missed?