Il Count(*)
restituisce una riga che contiene il numero di righe come valore.
Usando mysql_num_rows($result)
stai effettivamente contando la quantità di righe di Count(*)
risultato che è davvero uno .
Cambialo in:
$result = mysql_query("SELECT * FROM smf_personal_messages", $link);
$num_rows = mysql_num_rows($result);
Oppure usa semplicemente il Count(*)
valore (che è probabilmente migliore poiché conta nel DB e non recupera l'intera tabella per esso) usando mysql_fetch_array
.