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>
Agradezco su orientación.