Hola compañeros.
Estoy trabajando en un proyecto de calculo de una clasificacion apartir de una base de datos.
Parto de una base de datos con las siguientes tablas:
aciertos, psocios, qcorrecta y clasificacion
Tambien utlizo alguna como SOCIOS para obtener nombre del socio pero no es importante.
quisiera saber porque me crea una nueva fila cuando actualizo la tabla clasificacion. Llevo horas mirando el codigo y quiza sea por parte de alguna otra consulta realizada anteriormente para calcular puntos y aciertos etc.. os expongo el codigo para haber si podeis echarme una mano ya que esto para mi se me escapa de mi alcance y de mi tiempo... Muchas gracias de ante mano.
Código PHP:
<?PHP
include("lib/conexionUsuario.php");
include("lib/fclas.php");
if (isset($_SESSION["usuario_valido"]))
{
?>
<?PHP
//////////////////////////////////////////////////////////////////////////
// si el formulario ha sido enviado
// validar formulario
// fsi
// si el formulario ha sido enviado y los datos son correctos
// procesar formulario
// si no
// mostrar formulario
// fsi
//////////////////////////////////////////////////////////////////////////
// Obtener valores introducidos en el formulario
$calcular = $_REQUEST['calcular'];
$jornada = $_REQUEST['jornada'];
if (isset($calcular))
{
// Insertar la noticia en la Base de Datos
$conexion = mysql_connect ($hostSQL,$usuarioSQL,$passSQL)
or die ("No se puede conectar con el servidor");
// Seleccionar base de datos
mysql_select_db ($nombreBD)
or die ("No se puede seleccionar la base de datos");
$instruccion = "select * from psocios where jornada=$jornada order by nsocio asc";
$instruccion2 = "select * from qcorrecta where jornada=$jornada";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
$consulta2 = mysql_query ($instruccion2, $conexion)
or die ("Fallo en la consulta");
//obtener resultados quiniela correcta
$resultado2=mysql_fetch_array($consulta2);
//obtener numero de socios que han echo la quiniela
$nfilas=mysql_num_rows($consulta);
//formar array para quiniela correcta
$array2=array($resultado2['p1'],$resultado2['p2'],$resultado2['p3'],$resultado2['p4'],$resultado2['p5'],$resultado2['p6'],$resultado2['p7']);
//para cada socio calcular puntos e introducirlos a la clasificacion
for ($i=0;$i<$nfilas;$i++)
{
//obtener resultados quiniela socio
$resultado=mysql_fetch_array($consulta);
//obtener nombre socio
$instruccion4 = "select * from socios where nsocio=$resultado[nsocio]";
$consulta4 = mysql_query ($instruccion4, $conexion)
or die ("Fallo en la consulta");
$resultado4=mysql_fetch_array($consulta4);
//array para quiniela del socio
$array=array($resultado['p1'],$resultado['p2'],$resultado['p3'],$resultado['p4'],$resultado['p5'],$resultado['p6'],$resultado['p7']);
//calculo de aciertos de la jornada
$aboleto=aciertosboleto($array,$array2);
$alea=aciertolea($resultado['mlocal'],$resultado['mvisitante'],$resultado2['mlocal'],$resultado2['mvisitante']);
$instruccion3 = "insert into aciertos(nsocio,jornada,aciertos,aciertolea) values ('$resultado[nsocio]','$jornada','$aboleto','$alea')";
$consulta3 = mysql_query ($instruccion3, $conexion)
or die ("Fallo en la consulta");
//aciertos totales (consulta aciertos que lleva)
$instruccion5 = "select * from clasificacion where nsocio=$resultado[nsocio]";
$consulta5 = mysql_query ($instruccion5, $conexion)
or die ("Fallo en la consulta");
$resultado5=mysql_fetch_array($consulta5);
$aciertosleatotal=$resultado5['aleatotal']+$alea;
$aciertosboletototal=$resultado5['aboletototal']+$aboleto;
//actualizar clasificiacion
$instruccion6 = "insert into clasificacion (nsocio,nombre,aboletototal,aleatotal) values ('$resultado[nsocio]','$resultado4[nombre]','$aciertosboletototal','$aciertosleatotal')";
$consulta6 = mysql_query ($instruccion6, $conexion)
or die ("Fallo en la consulta6");
//calcular puntos
$instruccion7 = "select * from clasificacion where nsocio=$resultado[nsocio]";
$consulta7 = mysql_query ($instruccion7, $conexion)
or die ("Fallo en la consulta7");
$resultado7=mysql_fetch_array($consulta7);
$puntostotal= $resultado7['aboletototal']+($resultado7['aleatotal']*2);
$instruccion8 = "update clasificacion SET puntos=$puntostotal WHERE id=$resultado7[id]";
$consulta8 = mysql_query ($instruccion8, $conexion)
or die ("Fallo en la consulta");
}
mysql_close ($conexion);
// Mostrar datos introducidos
print ("<H1>Gestión de quinielas</H1>\n");
print ("<H2>Resultado de la actualizacion de la nueva clasificacion</H2>\n");
print ("<P>El jornada se ha calculado correctamente:</P>\n");
print ("[ <A HREF='login.php'>Menú principal</A> ]</P>\n");
}
else
{
?>
<H1>Gestión de quiniela</H1>
<H2>Calcular clasificacion</H2>
<FORM CLASS="borde" ACTION="calcula_clasificacion.php" NAME="calcular" METHOD="POST"
ENCTYPE="multipart/form-data">
<SELECT NAME="jornada">
<OPTION SELECTED></OPTION>
<?php for($i=1; $i<27 ;$i++)
{ ?>
<OPTION value="<?php print($i);?>">Jornada <?php print($i);
}?>
</OPTION>
</SELECT>
<!-- Botón de envío -->
<P><INPUT TYPE="SUBMIT" NAME="calcular" VALUE="Calcular jornada"></P>
</FORM>
<P>NOTA: los datos marcados con (*) deben ser rellenados obligatoriamente</P>
<P>[ <A HREF='login.php'>Menú principal</A> ]</P>
<?PHP
}
?>
<?PHP
}
else
{
print ("<BR><BR>\n");
print ("<P ALIGN='CENTER'>Acceso no autorizado</P>\n");
print ("<P ALIGN='CENTER'>[ <A HREF='login.php' TARGET='_top'>Conectar</A> ]</P>\n");
}
?>


