Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Arguile's scratchpad

by Arguile (Hermit)
on Jun 04, 2004 at 18:05 UTC ( #361038=scratchpad: print w/replies, xml ) Need Help??

In response to your retitling nodes and all replies, I thought I'd try flexing my pmdev muscles for the first time. :)

It's a quick untested hack, but should work with only a few minor modifications; thing like how to get form vars in pm, where it should go, if it's even valid.... You know, little stuff like that <g>.

Hope it helps.

# Bredth first listing of all nodes under given root (incl. root). # my $get_children = sub { my $parents = \@_; # Hackery. We should really only accept one id. my @children; my $dbh = $DB->getDatabaseHandle; local $" = ','; while ( @$parents > 0 ) { push @children, @$parents; $parents = $dbh->selectcol_arrayref(qq{ SELECT note_id FROM note WHERE parent_node IN ( @$parents ) }); } return @children; # Returns root at head of list (easier later ;) } # Runs a search and replace on the title of selected nodes. Returns # number of records updated (0 still true). # my $retitle = sub { my $new_title = shift; my $old_title = shift; my @nodes = @_; my $dbh = $DB->getDatabaseHandle; local $" = ','; $dbh->do(qq{ UPDATE note SET title = REPLACE(title, ? , ?) WHERE note_id IN( @nodes ) }, undef, ($old_title, $new_title) ); } my $id = getId($NODE); $retitle_nodes->( 'new_title_var_goes_here', getNodeById($id)->{title} +, $get_children->($id) );

P.S. While I doubt a query-per-node tree traversal (ala list replies) would be faster here -- even with the fact it's prepared -- I can change it if you'd like.

Advanced Sorting - GRT - Guttman Rosler Transform
Log In?

What's my password?
Create A New User
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2017-05-22 18:05 GMT
Find Nodes?
    Voting Booth?