Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/11/2014, 10:43
frutos46
 
Fecha de Ingreso: septiembre-2014
Mensajes: 6
Antigüedad: 9 años, 7 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');