Pregunta:
Fecha: 23-08-2017 12:48:45
(En Español)
Adjunto el codigo.. el foreach me trae bien los resultados sin duplicidad, pero en el metodo que inserta los datos me los ingresa doble...
Este es el codigo del metodo que hace el insert
Insert doble desde php a mysql[Resuelta]
Buenas tardes... Espero que puedan ayudarme... Tengo una clase que me extrae los resultados de una consulta, hasta alli bien, pero en el ciclo donde muestro los resultados genero un nuevo objeto con un metodo para insertar los registros obtenidos en la consulta a otra tabla pero me esta insertando doble los registros... que podria estar ocurriedno ?Adjunto el codigo.. el foreach me trae bien los resultados sin duplicidad, pero en el metodo que inserta los datos me los ingresa doble...
foreach ($grupos_estudiantes as $detalle_gr) { $codigo_alumno = $detalle_gr['codigo_alumno']; $codigo_asignatura = $codigo_asignatura; $anio_grado = $anio_grado; $sede_alumno = $detalle_gr['sede_alumno']; $jornada_alumno = $detalle_gr['jornada_alumno']; $modalidad_alumno = $detalle_gr['modalidad_alumno']; $nucleo_alumno = $detalle_gr['nucleo_alumno']; $grado_alumno = $detalle_gr['grado_alumno']; $grupo_alumno = $detalle_gr['grupo_alumno']; $semestre_alumno = $detalle_gr['semestre_alumno']; $codigo_nota = $codigo_alumno.$anio_grado.$codigo_asignatura; //Ejecutamos Insert en Notas $inserta = $grupos_notas -> insertarNotasDefault($codigo_nota,$codigo_alumno,$anio_grado,$codigo_asignatura,$sede_alumno,$jornada_alumno,$modalidad_alumno,$nucleo_alumno,$grado_alumno,$grupo_alumno,$semestre_alumno,$ip,$estacion,$usuario,$fecha,$hora); }
Este es el codigo del metodo que hace el insert
public function insertarNotasDefault($arg_codigo,$arg_alumno,$arg_ano,$arg_asignatura,$arg_sede,$arg_jornada,$arg_modalidad,$arg_nucleo,$arg_grado,$arg_grupo,$arg_semestre,$arg_ip,$arg_estacion,$arg_usuario,$arg_fecha,$arg_hora){ try{ $this -> link ->beginTransaction(); $sql = "INSERT INTO notas(codigo_nota,codigo_alumno,ano_nota,codigo_asignatura,sede_nota,jornada_nota,modalidad_nota,nucleo_nota,grado_nota,grupo_nota,semestre_nota,ip_nota,estacion_nota,usuario_nota,fecha_nota,hora_nota) VALUES(:codigo,:alumno,:anio,:asignatura,:sede,:jornada,:modalidad,:nucleo,:grado,:grupo,:semestre,:ip,:estacion,:usuario,:fecha,:hora)"; $stmt = $this -> link -> prepare($sql); $stmt -> bindParam(":codigo",$arg_codigo); $stmt -> bindParam(":alumno",$arg_alumno); $stmt -> bindParam(":anio",$arg_ano); $stmt -> bindParam(":asignatura",$arg_asignatura); $stmt -> bindParam(":sede",$arg_sede); $stmt -> bindParam(":jornada",$arg_jornada); $stmt -> bindParam(":modalidad",$arg_modalidad); $stmt -> bindParam(":nucleo",$arg_nucleo); $stmt -> bindParam(":grado",$arg_grado); $stmt -> bindParam(":grupo",$arg_grupo); $stmt -> bindParam(":semestre",$arg_semestre); $stmt -> bindParam(":ip",$arg_ip); $stmt -> bindParam(":usuario",$arg_usuario); $stmt -> bindParam(":estacion",$arg_estacion); $stmt -> bindParam(":fecha",$arg_fecha); $stmt -> bindParam(":hora",$arg_hora); if(!$stmt){ return "Error al listar el registro."; }else{ $stmt->execute(); if($stmt->execute()){ $this -> link->commit(); return 1; }else{ return 0; } } }catch(PDOException $e){ $this -> link->rollBack(); return "Error. ".$e->getMessage(); } $this -> link -> close(); }Votos: 0 - Respuestas: 2 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 23-08-2017 13:09:54 Hola me parece que aqui estas ejecutando 2 veces
$stmt->execute(); if($stmt->execute()){
al hacer un excute si todo bien te retorna true en todo caso yo haria lo siguiente:
$ejecutarQuery = $stmt->execute(); if($ejecutarQuery){ }
Esa es la idea que tengo espero te ayude Votos: 0 - Link respuesta -
Fecha: 23-08-2017 14:24:46 Muchas gracias... Ese era el problema que tenia... solucionado FULL HD... Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión