Pues un problema puede ser que el or die() se ejecuta cuando la condición es falsa, por lo que te digo no es bueno evaluar y asignar es mejor tener un control de flujo.
Si mysql_num_rows te devuelve 0, PHP lo interpreta como falso y por ende se va al or die(), si hubieras visto el
manual (
mysql_num_rows) antes de estarte quejando por el foro hubieras podido ver el error.
Saludos.