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');