Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2014, 07:09
isabellawebs
Usuario no validado
 
Fecha de Ingreso: diciembre-2009
Ubicación: Bogotá
Mensajes: 462
Antigüedad: 14 años, 11 meses
Puntos: 18
Hice un formulario para recoger datos en bd y exportar (descargar) un excel al enviar

Hola, comunidad:

Hice un formulario para recoger datos en bd y exportar (descargar) un excel al enviar, pero no se como hacer para que el archivo no se descargue al entrar en la pagina sino al enviar el formulario. El fragmento de código, lo pongo:

CODIGO COMPLETO:

Código PHP:
<?php require_once('Connections/myr2014.php');?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO ingresonuevo (fecha, apellidos, nombres, cc, fechanac, fechaexp, ciudadnacced, rh, eps, afp, tallabotas, tallacamisa, email, telfijo, telmovil, proyectociudad) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['fecha'], "date"),
                       
GetSQLValueString($_POST['apellidos'], "text"),
                       
GetSQLValueString($_POST['nombres'], "text"),
                       
GetSQLValueString($_POST['cc'], "text"),
                       
GetSQLValueString($_POST['fechanac'], "text"),
                       
GetSQLValueString($_POST['fechaexp'], "text"),
                       
GetSQLValueString($_POST['ciudadnacced'], "text"),
                       
GetSQLValueString($_POST['rh'], "text"),
                       
GetSQLValueString($_POST['eps'], "text"),
                       
GetSQLValueString($_POST['afp'], "text"),
                       
GetSQLValueString($_POST['tallabotas'], "text"),
                       
GetSQLValueString($_POST['tallacamisa'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       
GetSQLValueString($_POST['telfijo'], "text"),
                       
GetSQLValueString($_POST['telmovil'], "text"),
                       
GetSQLValueString($_POST['proyectociudad'], "text"));

  
mysql_select_db($database_myr2014$myr2014);
  
$Result1 mysql_query($insertSQL$myr2014) or die(mysql_error());

  
$insertGoTo "ANUNCIOS/ACTUALIZADO/";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
------------------------------------------------------
include(
"excelwriter.inc.php");

$excel=new ExcelWriter("reescribe_primernombre_primerapellido.xls");

if(
$excel==false) {
echo 
$excel->error;
}

//Escribimos la primera fila con las cabeceras
$myArr=array("Fecha","Apellidos","Nombres","Cedula","Fecha de Nacimiento","Fecha Exp Cedula","Ciudad de Nacimiento -Cedula-","Tipo de Sangre -RH-","EPS","AFP","Talla de Botas","Talla de Camisa","E-mail","Tel. Fijo","Tel. Movil","Ciudad del Proyecto");
$excel->writeLine($myArr);

//REALIZAMOS LA CONSULTA
$dbhost "localhost";
$dbuser "root";
$dbpassword "clave";
$dbname "besededatos";

$db2 mysql_connect($dbhost$dbuser$dbpassword) or die("Connection Error: " mysql_error());
mysql_select_db($dbname) or die("Error al conectar a la base de datos.");
$sql2 "SELECT * FROM ingresonuevo";
$sql2 .= " ORDER BY fecha ASC ";
$result2 mysql_query$sql2) or die("No se puede ejecutar la consulta: ".mysql_error());

//Escribimos todos los registros de la base de datos
//en el fichero EXCEL
while($Rs2 mysql_fetch_array($result2)) {
$myArr=array(
$Rs2['fecha'],
$Rs2['apellidos'],
$Rs2['nombres'],
$Rs2['cc'],
$Rs2['fechanac'],
$Rs2['fechaexp'],
$Rs2['ciudadnacced'],
$Rs2['rh'],
$Rs2['eps'],
$Rs2['afp'],
$Rs2['tallabotas'],
$Rs2['tallacamisa'],
$Rs2['email'],
$Rs2['telfijo'],
$Rs2['telmovil'],
$Rs2['proyectociudad'],

);
$excel->writeLine($myArr);
//Otra forma es
//$excel->writeLine($Rs2);
//De este modo volcariamos todos los registros seleccionados
//Sin necesidad de colocarlos/filtrar previamente en $myArr
}
$excel->close();

//Abrimos el fichero excel que acabamos de crear
header("location:reescribe_primernombre_primerapellido.xls");
?>
<!doctype html>
Donde puse las lineas ---------------- punteadas, es donde inserté el código que bajé de internet que me genera el excel.

Agradezco su orientación.