Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2014, 09:51
JorgeQuirino
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 3 meses
Puntos: 1
Carga de datos dentro de un solo formulario

Hola, tengo un gran problema, tengo este codigo

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>:: Importar de Excel a la Base de Datos ::</title>
  5. </head>
  6.  
  7. <body>
  8. <!-- FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL -->
  9.  
  10. <form name="importa" method="post" action="<?php echo$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" style="position:absolute;top:180;left:50">
  11. <p>Selecciona el archivo Listgrp:</p>
  12. <input type="file" name="excel" />
  13. <input type='submit' name='enviar'  value="Importar"  />
  14. <input type="hidden" value="upload2" name="action" />
  15. </form>
  16. <!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -->
  17.  
  18. <?php
  19. //mostrara solamente errores de ejecucion dentro de la pag.
  20.  
  21. $action='';
  22. extract($_POST);
  23. if ($action == 'upload2') //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
  24. {
  25. //cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
  26. $archivo = $_FILES['excel']['name']; //captura el nombre del archivo
  27. $tipo = $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)
  28.  
  29. $destino = "bak_".$archivo; //lugar donde se copiara el archivo
  30.  
  31. if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
  32. {
  33. echo "<p style='position:absolute;top:235;left:120'>Archivo Cargado Con Exito</p>";
  34. }
  35. else
  36. {
  37. echo "Error Al Cargar el Archivo";
  38. }
  39.  
  40. //validacion para saber si el archivo ya existe previamente
  41. if (file_exists ("bak_".$archivo))
  42. {
  43. /*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/
  44. /** Invocacion de Clases necesarias */
  45.  
  46. require_once 'Classes/PHPExcel.php';
  47. require_once 'Classes/PHPExcel/Reader/Excel2007.php';
  48. //DATOS DE CONEXION A LA BASE DE DATOS
  49. $cn = mysql_connect ("localhost","root","") or die ("ERROR EN LA CONEXION");
  50. $db = mysql_select_db ("perfilados",$cn) or die ("ERROR AL CONECTAR A LA BD");
  51.  
  52.  
  53. // Cargando la hoja de calculo
  54. $objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
  55. $objPHPExcel = $objReader->load("bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
  56. $objFecha = new PHPExcel_Shared_Date();
  57.  
  58. // Asignar hoja de excel activa
  59. $objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)
  60.  
  61. function insert($valores){
  62.     mysql_query("insert into listgrp values ".$valores);
  63. }
  64.  
  65. $i=1; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel
  66. $param=0;
  67. $contador=0;
  68. $f=2000; //para insertmultiple
  69. while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
  70. {
  71. $GRUPO=$objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue();
  72. $NOMBREGRUPO=$objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
  73.  
  74. $valores.="('$GRUPO','$NOMBREGRUPO'),";
  75. if($i==$f){
  76. $valores=substr($valores,0,-1);
  77. $c="insert into LISTGRP values ".$valores;
  78. $f+=2000;
  79. }
  80.  
  81. if($objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL)
  82. //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
  83. {
  84. $param=1; //para detener el ciclo cuando haya encontrado un valor NULL
  85. }
  86. $i++;
  87. $contador=$contador+1;
  88. }
  89.  
  90. if($i<$f && $i>($f-3000)){
  91. $valores=substr($valores,0,-1);
  92. insert($valores); //INSERTAMOS
  93. }else{
  94.     if($i<3000){ // SI NO SUPERA LOS 3000 REGISTROS CARGA LOS QUE ALLA
  95.     $valores=substr($valores,0,-1);
  96.     insert($valores); //INSERTAMOS
  97.     }
  98. }
  99. $totalIngresados=$contador-1; //(porque se se para con un NULL y le esta registrando como que tambien un dato)
  100. echo "<p style='position:absolute;top:255;left:100'>Total elementos subidos: $totalIngresados, <img src='img/correcto.jpg' border='0' width=5% height='4%'></p>";
  101. }
  102. else//si no se ha cargado el bak
  103. {
  104. echo "Necesitas primero importar el archivo";}
  105. unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
  106. }
  107. ?>
  108. <br>
  109. <br>
  110. <br>
  111. </body>
  112. </html>

lo que hace es importar un archivo excel a mysql.
lo que necesito es que tengo 4 archivos que subir y los tengo todos en formularios y archivos distintos, como los puedo unir todos dentro de un solo formulario y cargarlos todos con un solo boton