Nueva pregunta

Pregunta:

Fecha: 23-08-2017 12:48:45 (En Español)

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();
		}
Etiquetas: MySQL - PHP - Pregunta 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
 
frjcbbae garagebible.com