Count(*) vrátí vám jeden řádek, který obsahuje počet řádků jako hodnotu.
Pomocí mysql_num_rows($result) ve skutečnosti počítáte počet řádků Count(*) výsledek který je skutečně jeden .
Změňte jej na:
$result = mysql_query("SELECT * FROM smf_personal_messages", $link);
$num_rows = mysql_num_rows($result);
Nebo stačí použít Count(*) hodnotu (což je pravděpodobně lepší, protože se počítá v DB a nenačítá pro ni celou tabulku) pomocí mysql_fetch_array .