First, sorry I didn't get to this sooner. I've got a lot of things going on and I guess I'm not very organized. Anyway, the first thing you can do is add to the query to get the pagetext from the first post:
Code:
$query="SELECT thread.title, firstpostid, recipe_time, recipe_description, recipe_prep,
recipe_difficult, recipe_ingrediants, recipe_size, recipe_steps, pagetext FROM thread
LEFT JOIN post ON (thread.firstpostid = post.postid)
WHERE recipe_ingrediants IS NOT NULL AND recipe_ingrediants<>''";
Next, you just need to build a string that formats the fields using bbcode, so just as an example:
Code:
$formatted = "[b]Ingredients[/b]
[INDENT]{$row['recipe_ingrediants']}[/INDENT]
[b]Cooking Time[/b]
[indent]{$row['recipe_time']}[/indent]
etc.
{$row['pagetext']}"; // This add the existing post at the end
Obviously you'll want to play with that. What I'd probably do is something like add "AND threadid IN(1, 2, 3)" to the query so you're only looking at one or a few to start with (change 1, 2, 3 to whatever threadids you want, of course). And maybe just echo it out to start with.
When you think it looks OK, you can write it to the db by adding a query:
Code:
"UPDATE post SET pagetext='" . mysql_real_escape_string($formatted) . "' WHERE postid = {$row['firstpostid']}";
(That goes inside the loop when you're done formatting, of course).
And also, at the same time you might want to remove any cached version of the post from the postparsed table so you'll be sure to see your changes right away:
Code:
"DELETE FROM postparsed WHERE postid = {$row['firstpostid']}"
Again, you might want to have the "AND threadid IN(X, Y, Z)" on the outer query when you try this, then you're only risking one thread until you make sure it's working.