First I need to tell you that I am not a MySQL specialist and my opinion might be wrong butI think that:
1. You'll better use where day=$day and where month=$month because it works faster than using the "like" operator. 2. I think MySQL has a function for returning random numbers, so you better use that function instead. It will return a single row that match a criteria from the database and not a lot of records that need to be processed by Perl after that. You might check MySQL documentation for finding out this function. What you want, I think that it can be made with a single SQL line and you will need to get the data from a single row using Perl. Teddy, Teddy's Center: http://teddy.fcc.ro/ Email: [EMAIL PROTECTED] ----- Original Message ----- From: "Al Hospers" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, November 22, 2002 11:03 PM Subject: arrays & lists hi I know I am missing a lot in my knowledge, but I'm trying to figure something out & seemingly am in a hole... the task is as follows: 1) query a mysql database for as many records as match a criteria (I can do this OK) 2) put the resulting records, how ever many there are, into a list or an array 3) count the number of records I have retrived (I can do this OK) 4) choose a random record number (I can do this) 5) get the record corresponding to the random record number from the array 6) get a particular field from the stored record I am using DBI to get the data from the database. here is what I have so far: sub getRandomRecord{ my $cgi = shift; my $dbh = shift; my $month = shift; my $day = shift; my $searchResult; my $returnValue; #prepare and execute SQL statement $sqlstatement = "SELECT * FROM $TABLE WHERE month like $month and day like $day"; $sth = executeSQLStatement($sqlstatement, $dbh); $counter = 0; # put the records returned in an array/list & count how many while ($searchResult = $sth->fetchrow_array() ) { # get the 4th field from the record in the array & put it in the list my @list = ($searchResult[3]); ++$counter; } # pass the counter to the random integer routine & get a value back my $randomNumber = getRandomNumber($counter); $returnValue = @list[$randomNumber]; # clean up the DBI $sth->finish(); return $returnValue } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]