Kristofer,

Thank you.

It was a big mistake to forget the method.

I think I still have problems with catching when to use $ or %. I don't fully understand this section of the code:

my $hash = {};  
        
while (my $rows = $response->fetchrow_hashref){
  $hash->{$rows->{task_ID}} = $rows;
}

Why is hash declared as my $hash and not my %hash? and how does the final line result in a hash?


I am sorry, these are basic questions but I haven't got the hang of the logic yet.

Dave


On Thursday, June 5, 2003, at 07:25 pm, Kristofer Hoch wrote:


David,
  You don't have a response set at execute.  You have
a reference to a responce set.  You need to use DBI
methods to access the results.  Try this...

============================
$response->execute();
my $hash = {};  
        
while (my $rows = $response->fetchrow_hashref){
  $hash->{$rows->{task_ID}} = $rows;
}

$response->finish();

use Data::Dumper;
print Dumper $response;
============================
--- Greenhalgh David <[EMAIL PROTECTED]>
wrote:
Hi all,

I have a script which mostly works, but when I get
to the part with
hashes, it stops. I'm obviously doing something very
basically wrong,
but I can't see what. (been staring at so long it
could be anything.) A
segment of the code is below:

#!/usr/local/perl -wT
use strict;
use CGI;

# Do some stuff to identify the value of $marker
which will be a number

# Do MySQL query to grab the data to be manipulated

my $dbh=connect(DBI:mysql:database, "user",
"password");
my $query=("SELECT task_ID, priority FROM task_list
WHERE priority
$marker");
my $reponse->prepare($query);
$response->execute;

# $ response should now contain a
# reference to a hash filled with task_ID, priority
pairs
# Dereference $response

my %hash=%($response);
$response->finish;

# Subtract 1 from each value in the hash
my ($key, $priority, %newhash);

foreach $key (keys(%hash)){
        my $priority=$hash{$key}--;
        %newhash=($key, $priority);
        }

# Put the new $priority values into the MySQL table

$query=("UPDATE task_list SET priority=? WHERE
task_ID=?");
$response->prepare($query);

foreach $key (keys{%newhash}){
        $priority=$newhash{$key};       
        $response->execute($priority, $key);
        }

$response->finish;

# Test the result

print "Content-Type: text/html\n\n";

$query=("SELECT" task_ID, priority FROM task_list");
$response->prepare($query);
$response->execute;

while($key, $priority){
        print "Priority: $priority Task Ident:
$key<br>\n\n";
        }


Would someone be patient enough to point out the mistake?

Thanks

Dave


-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



=====
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GIT d s+:++ a C++ UL++ US+ P+++ L++
W+++ w PS PE t++ b+ G e r+++ z++++
------END GEEK CODE BLOCK------

__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to