Where in the world is it getting 'ffxi' at?
Eagle_f90
created: 2006-03-04 02:15:22
I have written a script that will connect to my SQL 2k DB and pull a random image form a random table. All works well and fine execpt that at some point, and I am not sure where, $gallery gets propergated with 'ffxi' and screws everything up.
#!/user/bin/perl -w
use CGI q~:standard~;
use CGI::Carp qw(fatalsToBrowser);
use strict;
use DBI;
print "Content-type: text/html\n\n";
my ($dbh, $sth, $haveimage, @games, @holder, $gallerynumber, $gallery, @imghold, @images, 
$imagenumber, $image, $groupname, $test);
$haveimage = 'No';
$dbh = DBI -> connect ('dbi:ODBC:read', 'uid', 'pass') or die "$DBI::errstr;";
$sth = $dbh -> prepare (q~select table_name from FFImages.information_schema.tables where table_catalog = 'FFImages' and table_type = 'Base Table' and table_name != 'dtproperties' and table_name != 'avatars'~) or die "$DBI::errstr;";
$sth -> execute() or die "$DBI::errstr;";
while (@holder = $sth -> fetchrow_array){
	@games = (@games, @holder);
}
do {
	$gallerynumber = int(rand(@games));
	$gallery = $games[$gallerynumber]; #There are 48 possible results for $Gallery
	$sth = $dbh -> prepare (qq~select ImageName from FFImages.dbo.$gallery~) or die "$DBI::errstr;";
	$sth -> execute() or die "$DBI::errstr;";
	while (@imghold = $sth -> fetchrow_array){
		@images = (@images, @imghold);
	}
	if ($images[0] ne ''){#Right now the only $gallery results that would return true here are 'ffac' and 'ffxi'
		$imagenumber = int(rand(@images));
		$image = $images[$imagenumber];
		$sth = $dbh -> prepare(qq~select GroupName from FFImages.dbo.$gallery where ImageName = '$image'~) or die "$DBI::errstr;"; #Everything is working fine up to and including this part, after here no matter what was in $gallery it is not longer there
		$sth -> execute() or die "$DBI::errstr;";
		$groupname = $sth -> fetchrow_array;
		print qq~Random Final Fantasy Image~; #At this point $gallery now contains 'ffxi' even if it did not before hand.
		$haveimage = 'Yes';
	}
} while ($haveimage ne 'Yes');
$dbh -> disconnect();
Can anyone tell me why $gallery is changed twords the end of the script when I never change it, at least I can not see it changing.
Re: Where in the world is it getting 'ffxi' at?
created: 2006-03-04 07:04:22

Just a wild guess - is there somewhere that is performing an arithmetic operation on the string? You might try logging your variables as the script runs, to determine where the change occurs.

Re^2: Where in the world is it getting 'ffxi' at?
created: 2006-03-04 13:05:39
After following your advice and logging the variables I came to find out nothing is wrong with the script. The issue is on the DB side. It seams I imported two tables into one on accedent, so it was pulling all information from ffxi table. Thanks.

perlmonks.org content © perlmonks.org and Eagle_f90, spiritway

prlmnks.org © 2006 edmund von der burg (eccles & toad)

v 0.03