Hay algunas cosas que puedes hacer directamente en tu consulta SQL de Upadate .. por ejemplo .. sumar una cantidad a un campo .. tan sólo:
Código PHP:
mysql_query("UPDATE usuarios SET Nivel=Nivel+1,puntos=puntos+$fila['PuntReto'] WHERE Nick='$nick'");
Por otro lado .. este tipo de cosas no son del todo correctas:
Código PHP:
$consulta = mysql_query("SELECT * FROM niveles WHERE IdReto='$id'");
$fila = mysql_fetch_array($consulta);
if ($fila) {
//etc ..
}
Deberías hacer:
Código PHP:
$consulta = mysql_query("SELECT * FROM niveles WHERE IdReto='$id'");
// Contar los registros que arroja la consulta SQL (se espera 1 o 0 por el tipo de consulta que haces)
if (mysql_num_rows($consulta) == 1){
$fila = mysql_fetch_array($consulta);
// usas $fila['loquesea']
} else {
echo "no hay resultados";
}
Un saludo,