Shawn H. Corey wrote:
On Fri, 2009-07-10 at 15:19 -0600, Scott wrote:
Hello,
I almost have this but cannot figure out why its not showing the data, right now it knows how many entries im putting in because it spits out that number of rows.

I am getting my data from dbd::mysql, it works because i have tested in in a normal test.pl and it prints out the data but not using an array or hash. I tried to follow this example: http://search.cpan.org/~samtregar/HTML-Template-2.9/Template.pm#TMPL_LOOP
I think its the second loop example on there.

Here is my code on the perl side:

my @wall_data = ();
        while(my $wallref = $wallpostquery->fetchrow_hashref())
        {
                my %walldata;
                
                $walldata{WALL_SUBJECT} = $wallref{'SUBJECT'};
                $walldata{WALL_DATE} = $wallref{'DATE'};
                $walldata{WALL_POSTID} = $wallref{'POSTID'};
                $walldata{WALL_MESSAGE} = $wallref{'MESSAGE'};
                
                push (@wall_data, \%walldata);

# The above pushes the address of hash on the array, over and over
again.
                 push @wall_data, { %walldata };
# This code pushes an anonymous hash containing the data on to the
array.


        }       
        $template->param(WALL_LOOP => \...@wall_data);

Web side:

        <TMPL_LOOP NAME="WALL_LOOP">
<h3><a href="#"><TMPL_VAR NAME='WALL_SUBJECT'> - Posted by <TMPL_VAR NAME="WALL_POSTID"> on <TMPL_VAR NAME="WALL_DATE"></a></h3>
                <div id="wallmessage">
                        <p><TMPL_VAR NAME="WALL_MESSAGE"></p>
                </div>
        </TMPL_LOOP>

thanks for those that help, sometimes handling data types is hard for me.

-Scott


that was really fast,

I tried that and still no go here is what i have now, i modified the query so i know its getting the data correctly just not to the html part. And I think your right, it is something to do with how its pushing the has onto the array, it still sees the total rows of the hash because its printing out the number of entries from the database just not the data ;S

my $wallpostquery = $dbstore->prepare("SELECT * FROM userwall WHERE USERID='6'") or die "Unable to connect: $DBI::errstr\n";
        $wallpostquery->execute();
        my @wall_data = ();
        while(my $wallref = $wallpostquery->fetchrow_hashref())
        {
                my %walldata;
                
                $walldata{WALL_SUBJECT} = $wallref{'SUBJECT'};
                $walldata{WALL_DATE} = $wallref{'DATE'};
                $walldata{WALL_POSTID} = $wallref{'POSTID'};
                $walldata{WALL_MESSAGE} = $wallref{'MESSAGE'};
                
                push @wall_data, { %walldata };
        }       
        $template->param(WALL_LOOP => \...@wall_data);
        
        $wallpostquery->finish();


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to