Para saber si hace bien la consulta prueba a poner un die();
Código PHP:
$resultado2= mysql_query("SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ",$con) or die(mysql_error());
A ver si así te dice si hay algun error en la consulta.
Y respondiendo a si debes cambiar el mysql_fetch_assoc por otro tipo, no hace falta. Hay gente que utiliza mysql_fetch_row, pero eso va a gustos. El problema no viene de ahí (creo).