#!/usr/bin/perl # use Text::Wrap; use Recipe; use strict; $Text::Wrap::columns = 60; my $recipe = Recipe->new(); my $res = $recipe->prepare("select * from recipe;") or die $recipe->errstr(); $res->execute() or die $res->errstr(); while(my @cols = $res->fetchrow_array()) { printf "%-02.02d: %-30.30s\n", $cols[0], $cols[1]; my $parts = $recipe->prepare( "select * from recipe_part ". "inner join recipe_part_map on recipe_part.recipe_part_id = recipe_part_map.recipe_part_id ". "where recipe_part_map.recipe_id = ?;" ) or die $recipe->errstr(); $parts->execute($cols[0]) or die $parts->errstr(); while(my @ps = $parts->fetchrow_array()) { printf " %-10.10s\n", $ps[1]; my $ingredients = $recipe->prepare( "select ingredient.name, recipe_ingredient_map.amount from ingredient ". "inner join recipe_ingredient_map on ingredient.ingredient_id = recipe_ingredient_map.ingredient_id ". "where recipe_ingredient_map.recipe_part_id = ?;" ) or die $recipe->errstr(); $ingredients->execute($ps[0]) or die $recipe->errstr(); while(my @is = $ingredients->fetchrow_array()) { printf " %-10.10s %-30.30s\n", $is[1], $is[0]; } print "\n"; print Text::Wrap::wrap(" "," ", $ps[2]); print "\n\n"; } printf " Notes:\n"; print Text::Wrap::wrap(" "," ", $cols[3]); print "\n\n"; } # vi: set ts=2 sw=2: #