You're obviously not understanding what I'm trying to say. You are storing you images somewhere on your server, in a private (non world readable) directory. So simply dumping out the path into an SRC tag won't do anything, since the browser will have no way to reach it. I will say it again -- you need to write a SEPARATE image serve script that has access to this directory, and simply produces a binary stream of data with the appropriate HTTP headers. If you don't know how to do this, I'm sure there are plenty of tutorials out there -- I'm not versed in PHP.
And to the e-mail client, it's STILL just HTML -- forget about the fact that php is generating it and that it's pulling stuff from a back end database. If the HTML page that you produce with PHP doesn't have proper SRC tags, it won't work.
Your code probably needs to look like:
$query = "SELECT broad_id FROM images_broad";
$result=mysql_query($query);
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
echo '<img src="http://www.your-domain-name.com/foo/bar/image_serve.php?broad_id='.$row['broad_id'].'"/>';
}
And then simply have that script take in the ID of that record, look up the path, binary read in the file, and then output a valid http image.
Does that make more sense? If not, I can't think of any other ways to explain it... maybe someone else has another way.