Are you sure the entire loop is rendered?
Why don't you remove the error suppressing on the following lines:
$blogs = @$con->query('SELECT * FROM blog');
while (($blogs = @$blogs->fetch_assoc()) != NULL){
I suppose if "most" of the loop were being echoed out, we could eliminate the first line listed as the culprit.
By the way, when you look at the source, do you see an error message at the bottom of the page?
If not, are errors turned off (recommended for production servers?) You can check with a simple:
echo 'display_errors = ' . ini_get('display_errors') . "\n";
For more information about errors, see the manual.
If you have access to logs, check for an Apache error status codes (50*.)