Foros del Web » Programando para Internet » PHP »

error de duplicado al calcular una clasificacion

Estas en el tema de error de duplicado al calcular una clasificacion en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/08/2008, 09:57
Avatar de spekwhite  
Fecha de Ingreso: julio-2008
Ubicación: Vitoria
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
error de duplicado al calcular una clasificacion

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&nbsp;<?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");
   }

?>
  #2 (permalink)  
Antiguo 28/08/2008, 02:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: error de duplicado al calcular una clasificacion

Será por el insert???
Cita:
//actualizar clasificiacion
$instruccion6 = "insert into clasificacion (nsocio,nombre,aboletototal,aleatotal) values
  #3 (permalink)  
Antiguo 28/08/2008, 07:06
Avatar de spekwhite  
Fecha de Ingreso: julio-2008
Ubicación: Vitoria
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error de duplicado al calcular una clasificacion

es k con ese insert lo q kiero es meter los aciertos y luego lo que ago es contar todos los aciertos y con eso calculo los puntos me entiendes??? aber si lo consigoooo k me ta poniendo frito.
  #4 (permalink)  
Antiguo 29/08/2008, 02:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: error de duplicado al calcular una clasificacion

no entiendo el problema o te explicas mejor o no te puedo ayudar.

Salu2
  #5 (permalink)  
Antiguo 29/08/2008, 07:47
Avatar de spekwhite  
Fecha de Ingreso: julio-2008
Ubicación: Vitoria
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: error de duplicado al calcular una clasificacion

weno no pasa nada que ya lo solucione. puse todos los campos a cero y luego simplemente se actualizan. gracias seyko
  #6 (permalink)  
Antiguo 29/08/2008, 11:34
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: error de duplicado al calcular una clasificacion

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #7 (permalink)  
Antiguo 29/08/2008, 15:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: error de duplicado al calcular una clasificacion

Cerrado / Solucionado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:34.