Okay, sounds good. Didn;t even think of using it like that so have learnt sth new.<br><br>thx.<br><br><b><i>SHAD0WRUNNER@gmx.de</i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> <br>-------- Original-Nachricht --------<br>Datum: Mon, 21 May 2007 13:25:18 +0100 (BST)<br>Von: Anthony Gardner <cyclewood_ltd@yahoo.co.uk><br>An: dbix-class@lists.rawmode.org<br>Betreff: [Dbix-class] Problem retrieving data<br><br>> This is probably bread 'n butter to you but ........<br>> <br>> I have the following table relationships .....<br>> <br>> groups ---< categories ---< subcategories ----< products<br>> <br>> for a group, I want to retrieve all of its categories, the catgeories'<br>> subcats etc.<br>> <br>> i have this .........<br>> <br>> ## switch between list and rs context<br>> my $group_rs =<br>> my @group =
$schema->resultset('ProductGroup')->search( { 'me.id' => 18 },<br>> { select => [<br>> 'me.name', 'categories.name', 'subcategories.name', 'products.name'],<br>> as => [<br>> qw|group_name category_name subcategory_name product_name|],<br>> join => {<br>> categories => { subcategories => 'products' }}<br>> });<br>> <br><br>I recommand use relations between tables:<br>my $group_rs = $schema->resultset('ProductGroup')<br> ->search( { 'me.id' => 18})<br><br>while ($group=$rs->next){<br> foreach my $categorie ($group->categories){<br> foreach my $sub_categorie ($categorie->subcategories){ <br> foreach my $product
($sub_categorie->products){ <br> print $group->group_name, ...;<br> }<br> }<br> }<br>}<br><br><br>If it's too slow, u can use prefetch to speed up.<br><br><br><br>> ....... which I think is right but I can;t get at all the rows from the<br>> returned resultset. If I return a list, it works. $group_rs->next() in a loop<br>> just returns the first row.<br>> <br>> ## this works in ist context<br>> foreach my $group ( @groups ) {<br>> my $group_name = $group->get_column('group_name');<br>> my $cat_name = $group->get_column('category_name');<br>> my $subcat_name = $group->get_column('subcategory_name');<br>> my $prod_name = $group->get_column('product_name');<br>> print "$group $group_name => $cat_name => $subcat_name =><br>> $prod_name\n"; <br>> }<br>> <br>> =pod <br>> ## this doesn't work for all rows context
<br>> <br>> foreach my $group ( $group_rs->next() ) {<br>> my $group_name = $group->get_column('group_name');<br>> my $cat_name = $group->get_column('category_name');<br>> my $subcat_name = $group->get_column('subcategory_name');<br>> my $prod_name = $group->get_column('product_name');<br>> print "$group $group_name => $cat_name => $subcat_name =><br>> $prod_name\n";<br>> }<br>> =cut<br>> <br>> I'd like to use the rs copntext and print something like .........<br>> <br>> group1<br>> cat1<br>> subcat1<br>> prod1<br>> prod2<br>> prod3<br>> subcat2<br>> prod4<br>> subcat3<br>> prod5<br>> cat2<br>> subcat4<br>> ..... etc. etc.<br>> <br>> Any tips would be greatly/warmly appreciated.<br>> <br>> -Ants<br>> <br>> <br>>
---------------------------------<br>> Yahoo! Messenger - with free PC-PC calling and photo sharing.<br><br>-- <br>FastJack<br><br>GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.<br>Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail<br><br>_______________________________________________<br>List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class<br>Wiki: http://dbix-class.shadowcatsystems.co.uk/<br>IRC: irc.perl.org#dbix-class<br>SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/<br>Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/<br></cyclewood_ltd@yahoo.co.uk></blockquote><br><p> 
<hr size=1>
Yahoo! Answers - Got a question? Someone out there knows the answer. <a
href="http://uk.answers.yahoo.com/;_ylc=X3oDMTEzaDRkZGdlBF9TAzIxMTQ3MTcxOTAEc2VjA01haWwEc2xrA3RhZ2xpbmVz">Try
it now</a>.