Foros del Web » Programando para Internet » PHP » CodeIgniter »

Duplicada clave primaria

Estas en el tema de Duplicada clave primaria en el foro de CodeIgniter en Foros del Web. Hola, estoy haciendo un proyecto en php para administrar una liga y tengo que ingresar datos en una tabla "clasificacion", en la cual ingreso(partido jugado, ...
  #1 (permalink)  
Antiguo 28/11/2014, 10:43
 
Fecha de Ingreso: septiembre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Duplicada clave primaria

Hola, estoy haciendo un proyecto en php para administrar una liga y tengo que ingresar datos en una tabla "clasificacion", en la cual ingreso(partido jugado, partido ganado, empatado o perdido, puntos,goles, equipo local, equipo visitante etc...). Bien si inserto en un jordana un equipo A y un equipo B, con sus respectivos datos, al hacer otra insercción por ejemplo equipo A y equipo C, me da el error de clave primaria duplicada, lo que hago es setear la variable equipo para comprobar si está, si es así, hago un update sino pues inserto el nuevo equipo.Agradecería mucho la ayuda
Aquí les dejo el código.

éste es mi modelo

Código PHP:
    public function save($arrayAsociativo)
    {
        
         foreach(
$arrayAsociativo as $valor) {

            
$dataResultados = array(
                
'idLiga' => $valor[8],
                
'golesAFavor' => $valor[5],
                
'golesEnContra' => $valor[6],
                
'partidoJugado' => $valor[1],
                
'partidosGanados' => $valor[2]
                
'partidosPerdidos' => $valor[4],
                
'partidosEmpatados' => $valor[3],
                
'puntos'=>$valor[7],
                
'equipo'=>$valor[0],

            );

            
            if(isset(
$this->equipo))
            {
                
                 
$this->db->where('equipo'$equipo);
                 
$this->db->update('clasificacion'$dataResultados); 
               
            }
            else
            {
                 
$this->db->insert('clasificacion',$dataResultados); 
            }
        }
    } 
y éste el controlador desde donde lo llamo

Código PHP:
    public function insertarC()
    {
//FUNCIONA

        /*************/
        
$empate=FALSE;
        
$ganador="";
        
$perdedor="";
        
/*************/
        

        
$this->load->model('clasificacionmodel');
        
$clasificacionmodel = new Clasificacionmodel();

        if(
$gLocal>$gVisitante)//gana local, suma 3, mas gf y gc
        
{
            
//echo "gana local";
            
$ganador=$local;
            
$perdedor=$visitante;
        }
        else if(
$gLocal<$gVisitante)
        {
            
$ganador=$visitante;
            
$perdedor=$local;
            
//echo "gana visitante";
        
}else if($gVisitante==$gLocal)
        {
            
//echo "empate";
            
$empate=true;
        } 
        
        
$posiciones = array(
        array(
$ganador,0,0,0,0,0,0,0,$idLiga),//equipo, pj,pg,pe,pp,gf,gc,puntos, idliga
        
array($perdedor,0,0,0,0,0,0,0,$idLiga),);

        if(
$empate)
        {
            
//echo "empate";
            
for($i=0$i<=count($posiciones)-1$i)
            {
                if(
strcmp($local,$posiciones[$i][0])==0)
                {
                        
$posiciones[$i][1]++;//pj
                        
$posiciones[$i][3]++;//pe
                        
$posiciones[$i][5]+=$gLocal;//gf
                        
$posiciones[$i][6]+=$gVisitante;//gc                        
                        
$posiciones[$i][7]++;//puntos
                    
}
                    if(
strcmp($visitante,$posiciones[$i][0])==0)
                    {
                        
$posiciones[$i][1]++;//pj
                        
$posiciones[$i][3]++;//pe
                        
$posiciones[$i][5]+=$gVisitante;//gf
                        
$posiciones[$i][6]+=$gLocal;//gc                        
                        
$posiciones[$i][7]++;//puntos
                    
}
                }
            }
        else 
        {
            for (
$j=0$j<=count($posiciones)-1$j++) {

                if (
strcmp($ganador,$posiciones[$j][0])==0) {
                    
$posiciones[$j][1]++; // pj
                    
$posiciones[$j][2]++; // pg
                    
$posiciones[$j][5] += $gLocal//gf
                    
$posiciones[$j][6] += $gVisitante// gc
                   
$posiciones[$j][7] += 3// suma tres puntos por ganar
                    //echo "gana local";
                  
}

                if (
strcmp($perdedor,$posiciones[$j][0])==0) {
                    
$posiciones[$j][1]++; // pp
                    
$posiciones[$j][4]++; // pe
                    
$posiciones[$j][5] += $gVisitante// gf
                    
$posiciones[$j][6] += $gLocal// gc
                            
                
}
           }
    }
        

        
$clasificacionmodel->save($posiciones);
        
$this->load->view('calendario'); 

Etiquetas: clave, duplicada, primaria
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:46.