Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2015, 16:36
Dekano0036
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Pregunta Problemas con un Insert en PDO y mysql

Hola que tal este es mi primer tema en esta comunidad.Mi probelma es el siguiente:

Estoy trabajando en sistema para un centro escolar,tengo un procedimiento almacenado que se ejecuta correctamente pero despues del procedimiento tengo que ejecutar varias consultas que me llegan como un arreglo via $_POST que luego los recorro con un for() pasandole un indice, en este for() la consulta se ejecuta varias veces con diferentes valores.Mi problema es que despues de ejecutar el procedimiento intento ejecutar unos INSERT a diferentes tablas pero cuando voy al phpmyadmin y reviso las tablas no hay datos guardados.Lo peor evaluo el resultado de la varible que hace el execute() de PDO y me dice que esta todo correcto pero no es asi.Ingrese datos a la tabla manualmente y los inserta pero me di cuenta de que el id de la tabla no empieza en 1 si no que empieza desde mucho mas arriba de el valor inicial quiere decir que hace el INSERT pero parece que elimina los datos.

En fin ya e probado muchas cosas y nada funciona si me dieran una mano se los agradeceria.


Aqui les comparto mi codigo


Código:
Y Este es todo el codigo de mi archivo en donde hago las consultas:

<?php
require_once("ClassConexion.php");
require_once("ClassServer.php");
		
class Estudiante 
{
 
 private $sql;
 private $con;
 private $res;
 private $idPersona2;
 private $fecha;
 private $condicion;
 private $anio;
 private $idEstudiante;
 private $id;
 private $reg;
 private $Ruta;
 private $idCiclo;

        
         public function __construct()
         {
            $this->con=Conectar::Con();
            $this->Ruta=Servidor::get_server();
         }


         
         public function NuevoEstudiante()
         {

         $this->fecha=$_POST['anio'].'-'.$_POST['mes'].'-'.$_POST['dia'];
           
         $this->sql="call preparabd.spEstudianteInserta(:Nombres,:Apellidos,:Direccion,:Cedula,:telefono,:movil,:email,:edad,:Sexo,:FechaDeNaci,:LugarDENac,:estado,:RNE);";   
         
         $this->res=$this->con->prepare($this->sql);
         
         $this->res->execute(array(':Nombres'=>$_POST['NombresNuevoEstudiante'],':Apellidos'=>$_POST['ApellidosNuevoEstudiante'],
         ':Direccion'=>$_POST['DireccionNuevoEstudiante'],':Cedula'=>$_POST['CedulaNuevoEstudiante'],':telefono'=>$_POST['TelNuevoEstudiante'],
         ':movil'=>$_POST['CEL_NuevoEstudiante'],':email'=>$_POST['Email_NuevoEstudiante'],':edad'=>$_POST['edadNuevoEstudiante'],
         ':Sexo'=>$_POST['SexoNuevoEstudiante'],':FechaDeNaci'=>$this->fecha,':LugarDENac'=>$_POST['LugarNacNuevoEstudiante'],':estado'=>$_POST['EstCivil'],':RNE'=>$_POST['RNE_NuevoEstudiante']));   


    
        print_r($_POST);

       
         }
         
    
          
         public function NuevoTutor($id)
         {
            
         for($i=0;$i<sizeof($_POST['NombreTutor']);$i++)
             {
                
                $this->sql="call NuevoCiclo(:idEstudiante,:NombresTutor,:DireccionTutor,:TelTutor,:MovilTutor,:Relacion);";
                
                $this->res=$this->con->prepare($this->sql);
                
                $this->res->execute(array(':idEstudiante'=>$id,
                                          ':NombresTutor'=>$_POST['name'][$i],
                                          ':DireccionTutor'=>$_POST['DireccionTutor'][$i],
                                          ':TelTutor'=>$_POST['TelTutor'][$i],
                                          ':MovilTutor'=>$_POST['MovilTutor'][$i],
                                          ':Relacion'=>$_POST['RelacionTutor'][$i]));
          
            if($this->res)
            {
                echo '<script type="text/javascript">
                     alert("Exito Nuevo tutor");   
                     </script>';
                
            }else
            {
                
                echo '<script type="text/javascript">
                     alert("Error Nuevo tutor");   
                     </script>';
                
            }
          
          
                
             }  
            
            
         }      
         public function NuevoTrabajo()
         {
            
            $this->sql="INSERT INTO trabajo VALUES(NULL,:idEst,:NomTrabajo,
                        :DireccionTrabajo,:TelTrabajo,:EmailTrabajo)";
           
            $this->res=$this->con->prepare($this->sql);
           
            $this->res->execute(array(':idEst'=>$this->idEstudiante,
                                      ':NomTrabajo'=>$_POST['NomEmpresa'],
                                      ':DireccionTrabajo'=>$_POST['direccionempresa'],
                                      ':TelTrabajo'=>$_POST['TelEmpresa'],
                                      ':EmailTrabajo'=>'[email protected]'));


            if($this->res)
            {
                echo '<script type="text/javascript">
                     alert("Exito Nuevo Trabajo");   
                     </script>';
                
            }else
            {
                
                echo '<script type="text/javascript">
                     alert("Error Nuevo Trabajo");   
                     </script>';
                
            }

            
         }
       
         public function AgregarHistorial($idEstudiante,$idCiclo,$CentroDeEstudio,$nivel)
         {
            $this->sql="INSERT INTO historial VALUES(NULL,:idEstudiante,:idCiclo,:Nivel,:CentrodeEstudio);";
     
            $this->res=$this->con->prepare($this->sql);
            
            $this->res->execute(
            array(':idEstudiante'=>$idEstudiante,
                  ':idCiclo'=>$idCiclo,
                  ':Nivel'=>$nivel,
                  ':CentrodeEstudio'=>$CentroDeEstudio));
         
            if($this->res)
            {
                echo '<script type="text/javascript">
                     alert("Exito Agregar Historial");   
                     </script>';
                
            }else
            {
                
                echo '<script type="text/javascript">
                     alert("Error Agregar Historial");   
                     </script>';
                
            }
        
            
         } 
        public function NuevoCiclo()
        {
               $this->condicion='Inactivo'; 
            
               for($i=0;$i<sizeof($_POST['CicloCentrodeEstudio']);$i++)
                {
         
                  if(substr($_POST['CicloCentrodeEstudio'][$i],5,8)>=date('Y'))
                  {
                    $this->condicion='Activo';
                    
                  }  
                      
                                
                $this->res=$this->con->prepare("INSERT INTO ciclo(Ciclo,Semestre,Condicion) VALUES(?,?,?);");
                
                $this->res->bindParam(1,$_POST['CicloCentrodeEstudio'][$i],PDO::PARAM_STR); 
                $this->res->bindParam(2,$_POST['SemestreCentrodeEstudio'][$i],PDO::PARAM_STR);
                $this->res->bindParam(3,$this->condicion,PDO::PARAM_STR);
          
                $this->res->execute();

                }

            if($this->res)
            {
                echo '<script type="text/javascript">
                     alert("Exito Nuevo Ciclo "+'.$this->con->errorCode().');   
                     </script>';
                 
                
            }else
            {
                
                echo '<script type="text/javascript">
                     alert("Error Nuevo Ciclo");   
                     </script>';
                     
                echo $this->con->errorInfo();
            }
            
             return $this->con->lastInsertId();
        }
   
         public function ObtenerUltimoIdEstudiante()
         {
            $this->sql="SELECT idEstudiantes FROM estudiantes ORDER BY idEstudiantes DESC LIMIT 1;";
            
            $this->res=$this->con->prepare($this->sql);
            
            $this->res->execute();
        
            $this->reg=$this->res->fetch(PDO::FETCH_COLUMN);
  
            return $this->reg;
            
            
         }

     
}
Y Aqui llamo los metodos desde una vista Instanciando la clase Estudiante:

Código:
<?php

require_once('class/ClassEstudiante.php');
$ObjectEstudiante = new Estudiante();

if(isset($_POST['NombresNuevoEstudiante']) and !empty($_POST['NombresNuevoEstudiante']))
{
    $ObjectEstudiante->NuevoEstudiante();
    $idEstudiante=$ObjectEstudiante->ObtenerUltimoIdEstudiante();
    $idEstudiante=trim($idEstudiante);
    $idCiclo=$ObjectEstudiante->NuevoCiclo();
    $ObjectEstudiante->NuevoTutor($idEstudiante);
    
    for($i=0;$i<sizeof($_POST['CicloCentrodeEstudio']);$i++)
        {
        
         $ObjectEstudiante->AgregarHistorial($idEstudiante,
                         $idCiclo,
                         $_POST['CicloCentrodeEstudio'][$i],
                         $_POST['NivelCentrodeEstudio'][$i]);
                         
        }
        
        
}

?>