Tienes un buen número de fallos de "conceptos" a la hora de trabajar con Mysql .. Tal vez por qué no has leido ningún manual al respecto? ..
Te recomiendo este:
http://otri.us.es/recursosPHP/manual/index.htm
Algunos fallos:
Código PHP:
// estas líneas sobran .. el or die() anterior ya pararía la ejecución del script si se produce un error . así que nunca se llegaría a ejecutar esto.
if (!$conexion) { // COMPROBAMOS QUE LA CONEXION A TENIDO EXITO
echo "No se ha podido conectar con el servidor";
}
if (!$consulta) {// COMPROBAMOS QUE SE HA PODIDO REALIZAR LA CONSULTA
echo "No se ha podido realizar la consulta";
}
// Y si usas mysql_error() mejor. Sobre todo en fase de desarollo y si estás aprendiendo a usar dichas funciones ahí veras el error exacto de Mysql (sea de SQL o de conexión)
Código PHP:
/*****************Comprobamos las filas afectadas por la consulta *****************/
// Esto así no tiene sentido ...no estás asignando a ninguna variable y usandolo como condicionan en ninguna expresión ..
mysql_num_rows($consulta);
Código PHP:
// Este es el problema del "bucle infinito" ... mysql_num_rows() devuelve el número de registros que te arroje tu consulta .. y FALSE si no se puede ejecutar .. Y while() se ejecuta (el bucle) hasta que sea "FALSE" la condición ..
while ($fila = mysql_num_rows($consulta)) {
// debes usar:
while ($fila = mysql_fetch_array($consulta)) {
// mysql_fecht_array() te entrega el registro actual y mueve el puntero de la consulta realizada .. Devuelve FALSE cuando no encuentra más registros en la consulta ...
Un saludo,