Le Count(*) vous renvoie une ligne qui contient le nombre de lignes comme valeur.
En utilisant mysql_num_rows($result) vous comptez en fait le nombre de lignes du Count(*) résultat qui en est vraiment un .
Changez-le en :
$result = mysql_query("SELECT * FROM smf_personal_messages", $link);
$num_rows = mysql_num_rows($result);
Ou utilisez simplement le Count(*) valeur (ce qui est probablement mieux car elle compte dans la base de données et ne récupère pas toute la table pour elle) en utilisant mysql_fetch_array .