Comunidad de diseño web y desarrollo en internet online

transformación de código php tradicional a cogigo php en mvc

Citar            
MensajeEscrito el 13 Nov 2013 02:55 pm
hola muy buenos dias a todos los compañeros de este foro.
tengo un pequeño problema, yo tengo uno un script que realice para cargar datos de excel a mysql mediante php, pero lo hice de la forma tradiconal de programacion, el problema es que lo tengo que transformar a mvc (modelo vista controlador) y yo ese estilo de programación nunca la es usado y ps no tengo ni idea de como cambiar mi codigo a ese estilo.

Si hay algun miembro de este este foro que me pueda ayudar le estare muy agradecido, aki les dejare el script


Código PHP :

<html> 
<!-- IMPORTAR ARCHIVOSN DE EXCEL A MYSQL DESDE PHP --> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <title> Importar de Excel a la Base de Datos </title> 
    </head> 

<body> 
<!-- FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL --> 
    <fieldset style="width:450px; heigth: 80px"> 
        <legend align="center">Seleccione el archivo para importar datos:</legend> 
            <form name="importa" method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data" > 
                <input type="file" name="excel" /> 
                <input type='submit' name='enviar'  value="Importar"  /> 
                <input type="hidden" value="upload" name="action" /> 
            </form> 
    </fieldset> 
<!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload --> 

<?php 
extract($_POST); 
    if ($action == "upload") //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value 
        { 
//cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_) 
            $archivo = $_FILES['excel']['name']; //captura el nombre del archivo 
            $tipo = $_FILES['excel']['type']; //captura el tipo de archivo  
            $destino = "bak_".$archivo; //lugar donde se copiara el archivo 

            if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar) 
                { 
                    echo "Archivo Cargado Con Exito "; 
                } 
            else 
                { 
                    echo "Error Al Cargar el Archivo "; 
                } 

//////////////////////////////////////////////////////// 
            if (file_exists ("bak_".$archivo)) //validacion para saber si el archivo ya existe previamente 
                { 
/*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/ 
/** Invocacion de Clases necesarias */ 
                    require_once('Classes/PHPExcel.php'); 
                    require_once('Classes/PHPExcel/Reader/Excel5.php'); 
//DATOS DE CONEXION A LA BASE DE DATOS 
                    $conexion = mysql_connect ("localhost","root","") or die ("ERROR EN LA CONEXION"); 
                    $database = mysql_select_db ("escuela",$conexion) or die ("ERROR AL CONECTAR A LA BD"); 

// Cargando la hoja de calculo 
                    $objReader = new PHPExcel_Reader_Excel5(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel) 
                    $objPHPExcel = $objReader->load("bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo 
                    $objFecha = new PHPExcel_Shared_Date(); 

// Asignar hoja de excel activa 
                    $objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja) 

// Llenamos un arreglo con los datos del archivo xlsx 
                    $i=1; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel 
                    $param=0; 
                    $contador=0; 
                    while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos 
                        { 

                            $nocontrol=$objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue(); 
                            $nombre=$objPHPExcel->getActiveSheet()->getCell('C'.$i)->getCalculatedValue(); 
                            $grado=$objPHPExcel->getActiveSheet()->getCell('D'.$i)->getCalculatedValue(); 
                            $grupo=$objPHPExcel->getActiveSheet()->getCell('E'.$i)->getCalculatedValue(); 
                            $sexo=$objPHPExcel->getActiveSheet()->getCell('F'.$i)->getCalculatedValue(); 

                            $c=("insert into alumnos values($i,$nocontrol,'$nombre','$grado','$grupo','$sexo')"); 
                            mysql_query($c); 

                            if($objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL) //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while 
                                { 
                                    $param=1; //para detener el ciclo cuando haya encontrado un valor NULL 
                                } 
                             
                            $i++; 
                            $contador=$contador+1; 
                        } 
                     
                    $totalIngresados=$contador-1; //(porque se se para con un NULL y le esta registrando como que tambien un dato) 
                    echo "Total de elementos subidos: $totalIngresados "; 
                } 
            else//si no se ha cargado el bak 
                { 
                    echo "Necesitas primero importar el archivo";} 
                    unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo) 
        } 

?> 
</body> 
</html>

Por manuxvalero

3 de clabLevel



Genero:Masculino  

estudiante de informatica

chrome
Citar            
MensajeEscrito el 15 Nov 2013 11:25 pm
No hay forma de pasarlo a MVC directo ya que depende del programador.

No te apures es una metodologia de trabajo para que todo este ordenado en fin.. en resumen:

Creas la estructura con carpetas Modelo, Vista y Controlador.

En tu index, vas a solicitar la vista del Excel, esa vista llama a un controlador (que tambien se pued ellamar Excel), que llama al script que creaste que ahora sera "Modelo".

La verdad es muy enredado al principio.. asi que tendras que leer muuucho.

Para esto ya debes dominar un poco el tema de la programación orientada a objetos... y bueno te dejo este libro muy bueno que te dara las bases.

http://es.scribd.com/doc/181778712/eugeniabahitpooymvcenphp

Es gratis

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 19 Nov 2013 12:36 am
muchas gracias amigo por tu sugerencia y por el
libro esta muy interesante

Por manuxvalero

3 de clabLevel



Genero:Masculino  

estudiante de informatica

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.