Попробуйте сделать
$result = mysql_query($sql) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^--- add this
Поскольку $ result не является допустимым дескриптором для mysql_num_rows, выясните, почему запрос не удался.
Кроме того, я предлагаю вам НЕ брать примеры кода для PHP. большинство из них, включая размещенные вами материалы, ужасно устарели или явно ошибочны. По крайней мере, этот использует mysql_real_escape_string, но он все еще использует полосы-черты и session_register.
И то, и другое устарело, и теперь в последней версии PHP материал magic_quotes, который удаляет "отменяет", фактически полностью удален.