Reporte de php a excel

Que tal necesito hacer un reporte en excel, ya me amnda mis resultados a pantalla pero mi problema es que el codigo que le pongo para que me mande mi reporte a excel pues lo hace directo al momento que yo le pongo este codigo ya no me muestra el resultado en pantalla sino que me manda ya todo el reporte directo a excel y necesito que primero me lo muestre en pantalla y con un boton ya haga la accion de mandar a excel hice esto:
En negrita esta lo de excel, si solo pongo los header me manda directo a excel si le pongo la accion del boton reporte no me ahce nada mas abajo esta el boton que de modo que al momento que presione el boton me mande hacer esta accion de excel pero no me funciona el boton no me hace nada espero me puedas ayudar
¿<?php
$Reporte= $_REQUEST['Reporte'];
if (isset($Reporte))
{
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=nombre_archivo.xls");    
}
?>

<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}
// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". Htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);
  $logoutGoTo = "../../index.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  // For security, start by assuming the visitor is NOT authorized.
  $isValid = False;
  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
      $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
      $isValid = true;
    }
    if (($strUsers == "") && true) {
      $isValid = true;
    }
  }
  return $isValid;
}
$MM_restrictGoTo = "../../index.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . Urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo);
  exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body,td,th {
    color: #CCCCCC;
}
body {
    background-color: #000000;
}
a:link {
    color: #CCCCCC;
}
a:visited {
    color: #CCCCCC;
}
a:hover {
    color: #CCCCCC;
}
a:active {
    color: #CCCCCC;
}
-->
</style>
</head>
<body>
<p> <a href="<?php echo $logoutAction ?>">Desconectar</a></p>
<p>
  <?php
  //if (!isset($CARRERA_EGRESO)){
      //echo "Debe especificar una cadena a bucar";
      //echo "
</html>
</body>
\n";
      //exit;
//}
$host="localhost";
$user="root";
$password="root";
$db="usuarios";
$CARRERA_EGRESO=$_POST["select"];
$ESPECIALIDAD=$_POST["select2"];
$TITULADO=$_POST["select3"];
$enlace = mysql_connect($host,$user,$password) or die ("No se puede conectar con el servidor");
mysql_select_db($db,$enlace) or die ("No se puede seleccionar la base de datos");
$consulta = mysql_query("SELECT * FROM perfil_prueba WHERE CARRERA_EGRESO LIKE '%$CARRERA_EGRESO%' and ESPECIALIDAD LIKE '%$ESPECIALIDAD%' and TITULADO LIKE '%$TITULADO%'", $enlace);
//$result=mysql_query($consulta) or die( "Error en query: $consulta, el error  es: " . Mysql_error() );
while($row = mysql_fetch_array($consulta))
{
$NUMERO_CONTROL= $row["NUMERO_CONTROL"];
$APELLIDO_PATERNO= $row["APELLIDO_PATERNO"];
$APELLIDO_MATERNO= $row["APELLIDO_MATERNO"];
$NOMBRE_S= $row["NOMBRE_S"];
$CARRERA_EGRESO= $row["CARRERA_EGRESO"];
$ESPECIALIDAD= $row["ESPECIALIDAD"];
$SEMESTRE_EGRESO= $row["SEMESTRE_EGRESO"];
$ANO_EGRESO= $row["ANO_EGRESO"];
$TITULADO= $row["TITULADO"];
echo("
<table width='100%' border='7' cellspacing='1' callpadding='1'>
\n");
echo("
<tr>
\n");
echo("
<td width='10%'>$NUMERO_CONTROL</a></td>
\n");
echo("
<td width='15%'>$APELLIDO_PATERNO</a></td>
\n");
echo("
<td...

2 Respuestas

Respuesta
1
Hay varias cosas. La primera es que si quiere que el código que genera el Excel no se ejecute en esa página debe moverlo a la página que se llamará cuando presione el botón.
En cuanto al botón, creo que no hace nada porque no hay algo como <form action="destino.php" method="post"> de manera que al presionar el botón lleve a la página destino.php
tenias razon solo le agregue el form action y ya funciono y ya hace lo ke kiero muchas gracias, espero no darte ams molestias o creo ke si te oy a dar otra pero primero voy a puntuar esta
saludos!!!!
Respuesta
1
En la consulta de la Base de datos, debes de poner exactamente los datos que quieres obtener, no toda la tabla.
Me resulta complicado entender tanto código, la verdad, necesitaría una mañana entera!, jaja
agregue un form action para el bton y ya una vez ke eme aparecen los resultados en patalla si le doy clic en el boton ya me manda ahora asi los resultados pero el problema es que si me sale solo un resultado en pantalla no me manda solo ese resultado sino que me manda todos los d ela base de datos no se poruqe te dejo el nuevo codigo con als modificaciones:
con este codigo hago la busqueda de lso datos:
<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}
// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);
  $logoutGoTo = "../../index.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  // For security, start by assuming the visitor is NOT authorized.
  $isValid = False;
  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
      $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
      $isValid = true;
    }
    if (($strUsers == "") && true) {
      $isValid = true;
    }
  }
  return $isValid;
}
$MM_restrictGoTo = "../../index.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo);
  exit;
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
#Layer1 {
    position:absolute;
    left:12px;
    top:174px;
    width:921px;
    height:123px;
    z-index:1;
}
.Estilo1 {
    font-size: 20px;
    font-weight: bold;
    color: #FFFFFF;
}
body {
    background-color: #000000;
}
.Estilo2 {color: #CCCCCC}
body,td,th {
    color: #CCCCCC;
}
a:link {
    color: #CCCCCC;
}
a:visited {
    color: #CCCCCC;
}
a:hover {
    color: #CCCCCC;
}
a:active {
    color: #CCCCCC;
}
-->
</style>
</head>
<body>
<form name="form" action="buscacarrera.php" method="POST">
<div id="Layer1">
<table width="915" border="0">
<tr>
<th scope="col">
<p align="left" class="Estilo2">Carrera de Egreso
        <select name="select" id="select">
        <option value=""> </option>
          <option value="INGENIERÍA INDUSTRIAL">INGENIERÍA INDUSTRIAL</option>
          <option value="INGENIERÍA ELÉCTRICA">INGENIERÍA ELÉCTRICA</option>
          <option value="INGENIERÍA MECATRONICA">INGENIERÍA MECATRONICA</option>
          <option value="INGENIERÍA EN SISTEMAS COMPUTA">INGENIERÍA EN SISTEMAS COMPUTA</option>
          <option value="INGENIERÍA MECÁNICA">INGENIERÍA MECÁNICA</option>
          <option value="LICENCIATURA EN INFORMÁTICA">LICENCIATURA EN INFORMÁTICA</option>
          <option value="INGENIERÍA ELECTRÓNICA">INGENIERÍA ELECTRÓNICA</option>
          <option value="LICENCIATURA EN ADMINISTRACIÓN">LICENCIATURA EN ADMINISTRACIÓN</option>
        </select>
        <label>Especialidad</label>
        <label>
        <select name="select2" id="select2">
        <option> </option>
          <option>DESARROLLO DE SOFTWARE</option>
        </select>
        </label>
      </p>
<p align="left" class="Estilo2">
          <label>Titulado(s) </label>
          <label>
          <select name="select3" id="select3">
            <option> </option>
            <option>SI</option>
            <option>NO</option>
          </select>
          </label>
        </p>
<p align="left">
        <span class="Estilo2">
        <label></label>
        </span>
<p align="left"><input type=submit name="Buscar" value="Buscar"></p>
</th>
      </p>
</th>
</tr>
</table>
</div>
<a href="<?php echo $logoutAction ?>">Desconectar</a>
</form>
<div align="left">
<div id="layer">
<table width="961" border="0" cellspacing="10" bordercolor="#000000" bgcolor="#000000">
<tr>
<th width="72" bgcolor="#000000" scope="col"><a href="../egresado/buscaregresado.php" target="mainFrame" class="Estilo2">Egresados</a></th>
        <th width="53" scope="col"><a href="formbuscacarrera.php" target="mainFrame" class="Estilo2">Carrera</a></th>
        <th width="64" scope="col"><a href="../semestre/formbuscarsemestre.php" target="mainFrame" class="Estilo2">Semestre</a></th>
        <th width="60" scope="col"><a href="../empresa/formbuscaempresa.php" target="mainFrame" class="Estilo2">Empresa</a></th>
        <th width="87" scope="col">
<div align="center"><span class="Estilo2"></span><a href="../otros estudios/formbuscaotrosestudios.php" target="mainFrame" class="Estilo2">Otros Estudios </a><span class="Estilo2"></span></div>
</th>
        <th width="117" scope="col"><span class="Estilo2"><a href="../../datos completos/mail_admon.php">Enviar Comunicado </a></span></th>
        <th width="106" scope="col"><span class="Estilo2"><a href="../CURSO/actualizarcurso.php">Actualizar Cursos </a></span></th>
        <th width="146" scope="col"><span class="Estilo2"><a href="../BOLSA DE TRABAJO/actualizarbolsatrabajo.php">Actualizar Bosa de Trabajo </a></span></th>
        <th width="218" scope="col"><span class="Estilo2"><a href="../NOTICIA/actualizar.php">Actualizar Noticias Generales </a></span></th>
</tr>
</table>
</div>
<p class="Estilo1">Consulta por Carrera:</p>
<p> </p>
</div>
</body>
</html>
y con este codigo es el de excel es donde aparecen los datos:
<?php
$Reporte= $_REQUEST['Reporte'];
if (isset($Reporte))
{
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: attachment; filename=reporte_carrera.xls");    
}
?>

<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}
// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);
  $logoutGoTo = "../../index.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  // For security, start by assuming the visitor is NOT authorized.
  $isValid = False;
  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
      $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
      $isValid = true;
    }
    if (($strUsers == "") && true) {
      $isValid = true;
    }
  }
  return $isValid;
}
$MM_restrictGoTo = "../../index.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo);
  exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
body,td,th {
    color: #CCCCCC;
}
body {
    background-color: #000000;
}
a:link {
    color: #CCCCCC;
}
a:visited {
    color: #CCCCCC;
}
a:hover {
    color: #CCCCCC;
}
a:active {
    color: #CCCCCC;
}
-->
</style>
</head>
<body>
<p> <a href="<?php echo $logoutAction ?>">Desconectar</a></p>
<p>
  <?php
  //if (!isset($CARRERA_EGRESO)){
      //echo "Debe especificar una cadena a bucar";
      //echo "
</html>
</body>
\n";
      //exit;
//}
$host="localhost";
$user="root";
$password="root";
$db="usuarios";
$CARRERA_EGRESO=$_POST["select"];
$ESPECIALIDAD=$_POST["select2"];
$TITULADO=$_POST["select3"];
$enlace = mysql_connect($host,$user,$password) or die ("No se puede conectar con el servidor");
mysql_select_db($db,$enlace) or die ("No se puede seleccionar la base de datos");
$consulta = mysql_query("SELECT * FROM perfil_prueba WHERE CARRERA_EGRESO LIKE '%$CARRERA_EGRESO%' and ESPECIALIDAD LIKE '%$ESPECIALIDAD%' and TITULADO LIKE '%$TITULADO%'", $enlace);
//$result=mysql_query($consulta) or die( "Error en query: $consulta, el error  es: " . mysql_error() );
while($row = mysql_fetch_array($consulta))
{
$NUMERO_CONTROL= $row["NUMERO_CONTROL"];
$APELLIDO_PATERNO= $row["APELLIDO_PATERNO"];
$APELLIDO_MATERNO= $row["APELLIDO_MATERNO"];
$NOMBRE_S= $row["NOMBRE_S"];
$CARRERA_EGRESO= $row["CARRERA_EGRESO"];
$ESPECIALIDAD= $row["ESPECIALIDAD"];
$SEMESTRE_EGRESO= $row["SEMESTRE_EGRESO"];
$ANO_EGRESO= $row["ANO_EGRESO"];
$TITULADO= $row["TITULADO"];
echo("
<table width='100%' border='7' cellspacing='1' callpadding='1'>
\n");
echo("
<tr>
\n");
echo("
<td width='10%'>$NUMERO_CONTROL</a></td>
\n");
echo("
<td width='15%'>$APELLIDO_PATERNO</a></td>
\n");
echo("
<td width='15%'>$APELLIDO_MATERNO</a></td>
\n");
echo("
<td width='20%'>$NOMBRE_S</a></td>
\n");
echo("
<td width='30%'>$CARRERA_EGRESO</a></td>
\n");
echo("
<td width='30%'>$ESPECIALIDAD</a></td>
\n");
echo("
<td width='20%'>$SEMESTRE_EGRESO</a></td>
\n");
echo("
<td width='8%'>$ANO_EGRESO</a></td>
\n");
echo("
<td width='5%'>$TITULADO</a></td>
\n");
echo("
</tr>
\n");
echo("
</table>
\n");
echo"
<hr size = 2color =ffffff width = 100% align = left>
";
}
?>
<form action="buscacarrera.php" method="post">
<input type=submit name="Reporte" value="Reporte">
</form>

</p>
<p><a href="formbuscacarrera.php">Regresar</a> </p>
</body>
</html>
gracias por tu respuesta el primer codigo no tiene nada que ver solo se hace la busqueda, pero en el segundo codigo podria ser que el form del boton no este dentro del while de donde se muestran los datos?? porque si me muestra los datos que deben de ser los que quieron que me aparescan por eso no hay problema, si hago una consulta por ejemplo buscar los egresados de la carrera de sistemas me aparece uno en pantalla pero cuando doy clic en el boton de excel para que me mande solo ese que aparecio no lo se hace me manda tambien los de los demas carreras cuando solo deberia mandar los resultados de la busqueda espero explicarme
En la generación del Excel, le debes enviar unicamente los datos que necesites, no la consulta global. Abre la creación en otra página y previsualiza los datos, luego ejecuta la creación del Excel.
tiene algun ejemplo para asignarle esas variables a lo de excel?? honestamente no se como pasarlas para ke el codigo de excel las tome, y es que este codigo que tengo de excel debe de estar siempre antes de cualquier codigo html me super urge espero me puedas ayudar con un ejemplo
saludos
Puedes pasara parámetros por GET:
generacionexcel.php?parametro1=valor&parametro2=valor2, etc...
Y cogerlos antes de cuanlquier HTML, ahi entra en juego el PHP

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas