#! /usr/bin/perl
# wwfindt.pl - Find articles in WW Index databases, return in table
use DBI;
use strict;
my $server = "Falcon";
my $db = "wwindex";
# database-related variables
my $sqlString;
my $rows;
my ($dbh, $sth);
my @result;
# Counters
my $recs = 0;
# Variables
my $searchWords;
print "WWFindt.pl starting.\n";
# Connect to MYSQL
$dbh = DBI->connect("DBI:mysql:host=".$server.";database=".$db,"guest","",{RaiseError=>1}) or die "Failed to Connect! $DBI::errstr";
print "Connected to database '$db' on server '$server'\n";
#print "Enter search words:";
#chomp($words = <>);
$searchWords = "saw blade storage";
# Issue SQL and check results
$sqlString = join(" ", "SELECT Source.SourceName, SourceDateVolumeIssue.SourceDate, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage, Article.ArticleTitle, Article.ArticleSynopsis",
"FROM (Article, Source, SourceDateVolumeIssue)",
"WHERE (ArticleTitle LIKE '%".$searchWords."%' OR ArticleSynopsis LIKE '%".$searchWords."%') AND (SourceDateVolumeIssueId = Article.ArticleSourceId) AND (Source.SourceId = SourceDateVolumeIssue.SourceId)",
"ORDER BY Source.SourceName, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage");
print "SQL: $sqlString\n";
$sth = $dbh->prepare($sqlString);
$sth->execute();
$rows = $sth->rows();
print "DB Query done. $rows rows returned.\n";
if ($rows == 0) {
print "** Query for Title or Synopsis containing '$searchWords' did not find anything.\n\n";
}
else {
while(@result = $sth->fetchrow_array()) {
print "Name='$result[0]', Date/Vol/Iss=$result[1]/$result[2]/$result[3], Page=$result[4], Title='$result[5]'\n";
}
}
print "WWFindt.pl completed processing.\n";
$sth->finish;
$dbh->disconnect;
exit (0);
####
dave@davesdell:~/Perl$ ./wwfindt.pl
WWFindt.pl starting.
Connected to database 'wwindex' on server 'Falcon'
SQL: SELECT Source.SourceName, SourceDateVolumeIssue.SourceDate, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage, Article.ArticleTitle, Article.ArticleSynopsis FROM (Article, Source, SourceDateVolumeIssue) WHERE (ArticleTitle LIKE '%saw blade storage%' OR ArticleSynopsis LIKE '%saw blade storage%') AND (SourceDateVolumeIssueId = Article.ArticleSourceId) AND (Source.SourceId = SourceDateVolumeIssue.SourceId) ORDER BY Source.SourceName, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage
DB Query done. 1 rows returned.
Name='ShopNotes', Date/Vol/Iss=Sept/Oct, 2007/16/95, Page=4, Title='Tips for Your Shop'
WWFindt.pl completed processing.
dave@davesdell:~/Perl$
####
mysql_st_internal_execute MYSQL_VERSION_ID 50137
>parse_params statement SELECT Source.SourceName, SourceDateVolumeIssue.SourceDate, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage, Article.ArticleTitle, Article.ArticleSynopsis FROM (Article, Source, SourceDateVolumeIssue) WHERE (ArticleTitle LIKE '%saw blade storage%' OR ArticleSynopsis LIKE '%saw blade storage%') AND (SourceDateVolumeIssueId = Article.ArticleSourceId) AND (Source.SourceId = SourceDateVolumeIssue.SourceId) ORDER BY Source.SourceName, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage
<- dbd_st_execute returning imp_sth->row_num 1
<- execute= 1 at wwfindt.pl line 38
-> rows for DBD::mysql::st (DBI::st=HASH(0x86c09a0)~0x85816f8) thr#857e008
<- rows= '1' at wwfindt.pl line 40
-> fetchrow_array for DBD::mysql::st (DBI::st=HASH(0x86c09a0)~0x85816f8) thr#857e008
-> dbd_st_fetch
dbd_st_fetch for 08653d58, chopblanks 0
dbd_st_fetch result set details
imp_sth->result=086dab98
mysql_num_fields=7
mysql_num_rows=1
mysql_affected_rows=1
dbd_st_fetch for 08653d58, currow= 1
<- dbd_st_fetch, 7 cols
<- fetchrow_array= ( 'ShopNotes' 'Sept/Oct, 2007' '16' '95' '4' 'Tips for Your Shop' 'Saw blade storage case; Conduit compass & router trammel; Shop-made gouge block; Circle cutter set-up gauge.' ) [7 items] row1 at wwfindt.pl line 47
-> fetchrow_array for DBD::mysql::st (DBI::st=HASH(0x86c09a0)~0x85816f8) thr#857e008
####
SQL result
Host: Falcon
Database: wwindex
Generation Time: Oct 17, 2011 at 07:11 PM
Generated by: phpMyAdmin 3.3.2deb1 / MySQL 5.1.41-3ubuntu12.10
SQL query: SELECT Source.SourceName, SourceDateVolumeIssue.SourceDate, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage, Article.ArticleTitle, Article.ArticleSynopsis FROM (Article, Source, SourceDateVolumeIssue) WHERE (ArticleTitle LIKE '%saw blade storage%' OR ArticleSynopsis LIKE '%saw blade storage%') AND (SourceDateVolumeIssueId = Article.ArticleSourceId) AND (Source.SourceId = SourceDateVolumeIssue.SourceId) ORDER BY Source.SourceName, SourceDateVolumeIssue.SourceVolume, SourceDateVolumeIssue.SourceIssue, Article.ArticlePage LIMIT 0, 30 ;
Rows: 6
SourceName SourceDate SourceVolume SourceIssue ArticlePage ArticleTitle ArticleSynopsis
ShopNotes July, 1992 0 4 28 Shop Solutions Saw blade storage rack; Edge jointing tip; Installing threaded inserts; Clamping irregular shapes; File handles
ShopNotes Sept/Oct, 2007 16 95 4 Tips for Your Shop Saw blade storage case; Conduit compass & router trammel; Shop-made gouge block; Circle cutter set-up gauge.
ShopNotes Sept/oct, 2009 18 107 44 Saw Blade Storage Three storage systems that protect saw blades while keeping them organized.
Wood Dec/Jan, 2008/2009 25 188 18 Shop Tips Extension for blocked drill crank; Pushstick for safer belt sanding; Easy-to-reach scrollsaw blade storage; Using metalworking clamps for extended reach; Adding hardboard zero-clearance plate to circular saw; Shoe organizer to store bottles and cans; Economical corner clamps; Using chip cans for storing paint rollers on the job.
Woodsmith June, 2002 24 141 4 Tips & Techniques PVC Pipe Clamp Storage; Name that cord; Quicker panels on the table saw; Saw blade storage; Tap & die storage; Laminate liner for shop vacuum.
Woodsmith Dec, 2002 24 144 4 Tips & Techniques Dangling drawer stops; PVC tool storage; Cork clamping; Mess-free cleaning; Saw blade storage;