$result = mysql_query("SELECT * FROM subscribe");
if ($r = mysql_query ($result)) {
Because mysql_query() expects a string, and in the second one you're passing it a MySQL result set (apparently an invalid one because it errors when you try to get any records out of it).
Let's add a little more debugging to your original code:
$con = mysql_connect("***","***","****") or die('Could not connect: ' . mysql_error());
mysql_select_db("subscribe", $con) or die('Could not select the database: '.mysql_error());
$result = mysql_query("SELECT * FROM subscribe") or die('Could run that query: '.mysql_error());
while($row = mysql_fetch_assoc($result)){
$row['email'];
}
Just checking something: you have a database named "subscribe" that contains a table named "subscribe"?