Foros del Web » Programando para Internet » PHP »

Carga de datos dentro de un solo formulario

Estas en el tema de Carga de datos dentro de un solo formulario en el foro de PHP en Foros del Web. Hola, tengo un gran problema, tengo este codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>:: Importar de Excel ...
  #1 (permalink)  
Antiguo 21/03/2014, 09:51
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 2 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
  #2 (permalink)  
Antiguo 21/03/2014, 10:47
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
Respuesta: Carga de datos dentro de un solo formulario

manda todos de un solo formulario y luego cargas uno a uno en un solo script es mas facil que unirlos y despues cargarlo

Etiquetas: fecha, formulario, html, mysql, registro, select, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:46.