Foros del Web » Programando para Internet » PHP »

Error al descargar excel

Estas en el tema de Error al descargar excel en el foro de PHP en Foros del Web. buenas tardes soy nuevo en este foro, y tengo el siguiente problema: estoy importando datos de mysql a excel con php, el problema es que ...
  #1 (permalink)  
Antiguo 08/10/2009, 12:27
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Exclamación Error al descargar excel

buenas tardes soy nuevo en este foro, y tengo el siguiente problema:

estoy importando datos de mysql a excel con php, el problema es que al seleccionar 63 registros de la base importa bien el archivo excel y muestra la informacion en una tabla, pero si yo me paso de 63 registros y selecciono 64 o mas en lugar de mandarme la tabla, me manda codigo html de los registros que tiene que mostrarme. Esto en pantalla lo hace bien, el problema es al descargarlo a excel

Espero que me puedan apoyar saludos.

les proporciono el codigo.

Última edición por tonchin; 08/10/2009 a las 14:58 Razón: agregar codigo
  #2 (permalink)  
Antiguo 08/10/2009, 13:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Error al descargar excel

Sin ver codigo no te podemos decir
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/10/2009, 15:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Error al descargar excel

Cita:
Iniciado por tonchin Ver Mensaje
buenas tardes soy nuevo en este foro, y tengo el siguiente problema:

estoy importando datos de mysql a excel con php, el problema es que al seleccionar 63 registros de la base importa bien el archivo excel y muestra la informacion en una tabla, pero si yo me paso de 63 registros y selecciono 64 o mas en lugar de mandarme la tabla, me manda codigo html de los registros que tiene que mostrarme. Esto en pantalla lo hace bien, el problema es al descargarlo a excel

Espero que me puedan apoyar saludos.

les proporciono el codigo.
  #4 (permalink)  
Antiguo 08/10/2009, 15:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Error al descargar excel

Proporciono el codigo

<?
if($_POST['excel']){
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: filename=\"archivo.xls\";");
}
if(!$_POST['excel']){
print'
<link rel="stylesheet" type="text/css" media="all" href="../tema/main.css" title="Cold" />
<script language="Javascript">
document.oncontextmenu = function(){return false}
</script>
<br><br>
<a href="javascript:window.print()"><font size=2 face=arial>Print</a> <a href="#" onclick="javascript:document.forma.submit();"><fon t size=2 face=arial>Download</a>
';}
include("../conex.php");
$link=Conectarse();
$estilos = array("par","impar","verde");
print'
<form name=forma action="" method=POST> ';
$titulosEncabezados = array("total_alta" => "ALTA", "total_media" => "MEDIA", "total_baja" => "BAJA", "popular" => "POPULAR", "alta_A" => "A", "alta_B" => "B", "media_Cmas" => "C +", "media_Ceme" => "C m", "media_Cmenos" => "C -", "baja_Dmas" => "D +", "baja_Deme" => "D m", "baja_Dmenos" => "D -", "popular" => "POPULAR" );
$titulosEdades = array ("1" => "INFANCIA", "2" => "NIÑEZ", "3" => "4", "2" => "JUVENTUD", "5" => "ADULTO", "6" => "ADULTO EN PLENITUD", "2" => "TERCERA EDAD");
$tablasEdades = array("1" => "edadesh", "2" => "edadesm", "3" => "edadesgral");
extract($_POST);
$var1=$_POST["consul"];
foreach ( $_POST as $key => $valor){
if(is_array($_POST[$key])){
foreach ( $_POST[$key] as $key2 => $valor2){
print "<input type='hidden' name='".$key."[]' value='".$valor2."'>\n";
}
}else{
print "<input type='hidden' name='".$key."' value='".$valor."'>\n";
}
}
print "<input type='hidden' name='excel' value='1'>\n";
$condicionEdades = " ( 2 = 1 ";
for($ed = 0; $ed < sizeOf($edades); $ed++){
$condicionEdades .= " OR te.indice = '$edades[$ed]' ";
}
$condicionEdades .= ")";
$condicionEstados = " AND ( 2 = 1 ";
for($ed = 0; $ed < sizeOf($ciudad1); $ed++){
$condicionEstados .= " OR ciudades.id_localidad = '$ciudad1[$ed]' ";
}
$condicionEstados .= ")";
if(sizeof($subnivel)>0){
$nivel = $subnivel;
}
$queCampos = ", ciudades.id_localidad ";
for($ed = 0; $ed < sizeOf($nivel); $ed++){
$queCampos .= ", sum($nivel[$ed]) as $nivel[$ed] ";
}
$sumaCampos = ", ciudades.id_localidad ";
for($ed = 0; $ed < sizeOf($nivel); $ed++){
$sumaCampos .= ", sum($nivel[$ed]) as $nivel[$ed] ";
}
$sumaEdad = ", ciudades.id_localidad ";
for($ed = 0; $ed < sizeOf($nivel); $ed++){
$sumaEdad = ",(+sum($nivel[$ed])) as $nivel[$ed]";
}
if($opcion > 0)
{print'
<center>
<table align=center>
<tr>
<td align=center>
<font size="4" color="#003399" face=arial>
<strong>
RESULTADO DE LA CONSULTA POR POBLACION ';
if($opcion == "1"){
echo"<br>(HOMBRES)";
}
elseif($opcion == "2"){
echo"<br>(MUJERES)";
}
elseif($opcion == "3")
{
echo "<br>(AMBOS SEXOS)";
}
print'</strong></font>
</td>
</tr>
</table>
<table cellspacing=0>';
print'<tr>';
if($nivel <> '') //consulta por niveles
{
$tablaEdades = $tablasEdades[$opcion];
$idEdo = 0;
$queryNivel = "SELECT ciudades.nombre, te.indice as indice $queCampos $sumaEdad from $tablaEdades te INNER JOIN ciudades ON te.loc_niv = ciudades.id_localidad where $condicionEdades $condicionEstados GROUP BY ciudades.id_localidad, te.indice";
//print $queryNivel;
$result=mysql_query($queryNivel,$link);
$numrow= mysql_numrows($result);
$primerRegistro = 0;
for($j=0; $j<$numrow; $j++)
{
$id_localidad = mysql_result($result,$j,"id_localidad");
$edad = mysql_result($result,$j,"indice");
if($idEdo != $id_localidad)
{
$cuenta = 0;
if($primerRegistro > 0)
{
//print_r($nivel);
print "<tr height=25 bgcolor=#003399 >
<th align=center>
<font color=#FFFFFF face=arial size=2> <strong>TOTALES</strong>
</th>";
$totales = 0;
for($ed = 0; $ed < sizeOf($nivel); $ed++)
{
print "<th height=25 align=center>
<font color=#FFFFFF face=arial size=2> <strong>".number_format($sumas[$nivel[$ed]][$idEdo])."</strong>
</td>"; //suma los totales por columnas
$totales += $sumas[$nivel[$ed]][$idEdo];
}
print "<th bgcolor=#426341 align=center>
<font color=#FFFFFF face=arial size=2><strong>".number_format($totales)."</strong>
</th>
</tr>
</table>";
}
$primerRegistro++;
print "<BR>
<table border=1 bordercolor=#CCCCCC cellspacing=0>
<tr height=40 bgcolor=#003399>
<th colspan='" . (sizeof($nivel) + 2) . "'>
<font color=#FFFFFF face=arial size=2> <strong>".mysql_result($result,$j,"nombre")."</strong>
</th>
</tr>";
print "<tr bgcolor=#006699 height=40 ><td><font color=#FFFFFF face=arial size=2><strong>NIVEL</td>";
for($ed = 0; $ed < sizeOf($nivel); $ed++)
{
print "<td width=70 align=center>
<font color=#FFFFFF face=arial size=2> <strong>".$titulosEncabezados[$nivel[$ed]]."
</td>";
}
print"<td><font color=#FFFFFF face=arial size=2><strong>MERCADO POTENCIAL</td>" ;
print "</tr>";
}
$suma=0;
$colorCol=($cuenta%2)?$estilos[1]:$estilos[0];//color de las filas
$colorColTmp= $colorCol;
$cuenta++;

print"<tr class='".$colorCol."' height=25>
<td align=left><font face=arial size=2><strong>";
if ($edad == "1"){
echo "INFANCIA (0 - 6)";
}
elseif($edad == "2"){
echo "NI&Ntilde;EZ (7 - 12)";
}
elseif($edad == "3"){
echo "ADOLESCENCIA (13 - 18)";
}
elseif($edad == "4"){
echo "JUVENTUD(19 - 25)";
}
elseif($edad == "5"){
echo "ADULTO(26 - 45)";
}
elseif($edad == "6"){
echo "ADULTO EN PLENITUD (46 - 60)";
}
elseif($edad == "7"){
echo "TERCERA EDAD (60 +)";
}
'</td>';
$suma=0;
for($ed = 0; $ed < sizeOf($nivel); $ed++)
{
$colorCol=($ed%1)?$estilos[2]:$colorColTmp;//color de las columnas

$query=mysql_result($result,$j,$nivel[$ed]);
print "<td align=center class='".$colorCol."'>
<font face=arial size=2> <strong>".number_format($query)."
</td>"; //imprime el contenido de la tabla o que se selecciono en consultaedos
$suma += $query;
$sumas[$nivel[$ed]][$id_localidad] += $query;
$sumas[$nivel[$ed]][0] += $query;
$sumas[$edad][$nivel[$ed]] += $query;
}
print "<td align=center bgcolor=#006699>
<font face=arial color=#FFFFFF size=2><strong>".number_format($suma)."
</td>";//suma los totales por rengolon
print"</tr>";
$idEdo = $id_localidad;
}
print "<tr height=25 bgcolor=#006699>
<td align=center>
<font color=#FFFFFF face=arial size=2><strong>TOTALES
</td>";
$totales = 0;

for($ed = 0; $ed < sizeOf($nivel); $ed++)
{
print "<td bgcolor=#006699 align=center>
<font color=#FFFFFF face=arial size=2><strong>".number_format($sumas[$nivel[$ed]][$idEdo])."
</td>";
$totales += $sumas[$nivel[$ed]][$idEdo];
}
print "<td align=center>
<font color=#FFFFFF face=arial size=2><strong>".number_format($totales)."
</td>";
//empieza codigo de tabla que reporta los resultados finales
print "</table>
<table border=1 bordercolor=#EFEFEF cellspacing=0>
<td height=40 colspan='".(sizeOf($nivel)+2)."' align=center bgcolor=#003399>
<font color=#FFFFFF face=arial size=2><strong>TOTAL MERCADO SELECCIONADO
</th>
<tr height=40 bgcolor=#003399>
<td>
<font color=#FFFFFF face=arial size=2><strong>NIVEL
</td>";
$cuenta=0;
$totales = 0;
for($ed = 0; $ed < sizeOf($nivel); $ed++)
{
print "<td align=center width=70>
<font color=#FFFFFF face=arial size=2><strong>".$titulosEncabezados[$nivel[$ed]]."
</td>";
}
print"<td>
<font color=#FFFFFF face=arial size=2> <strong>MERCADO POTENCIAL
</td>";
for($ed = 0; $ed < sizeOf($edades); $ed++)
{
$edad=$edades[$ed];
$colorCol=($cuenta%2)?$estilos[1]:$estilos[0];//color de las filas
$colorColTmp= $colorCol;
$cuenta++;
print "<tr height=25 ><td class='".$colorCol."' align=left><font face=arial size=2 > <strong>";
if ($edad == "1"){
echo "INFANCIA (0 - 6)";
}
elseif($edad == "2"){
echo "NI&Ntilde;EZ (7 - 12)";
}
elseif($edad == "3"){
echo "ADOLESCENCIA (13 - 18)";
}
elseif($edad == "4"){
echo "JUVENTUD(19 - 25)";
}
elseif($edad == "5"){
echo "ADULTO(26 - 45)";
}
elseif($edad == "6"){
echo "ADULTO EN PLENITUD (46 - 60)";
}
elseif($edad == "7"){
echo "TERCERA EDAD (60 +)";
}
print '</td>';//edades por grupo de edad
$otroTotal = 0;
for($niv = 0; $niv < sizeOf($nivel); $niv++)
{

$colorCol=($niv%1)?$estilos[2]:$colorColTmp;//color de las columnas

print "<td class='".$colorCol."' align=center>
<font face=arial size=2 ><strong>".number_format($sumas[$edades[$ed]][$nivel[$niv]])."
</td>";

$otroTotal += $sumas[$edades[$ed]][$nivel[$niv]];
}
print "<td align=center bgcolor=#003399>
<font color=#FFFFFF face=arial size=2>
<strong>".number_format($otroTotal)."
</td>
</tr>"; //suma por renglones de la tabla de resultados finales
}
print"<tr height=25>
<td bgcolor=#003399 align=center>
<font color=#FFFFFF face=arial size=2><strong>TOTALES
</td>";
for($ed = 0; $ed < sizeOf($nivel); $ed++)
{
print "<td bgcolor=#003399 align=center>
<font color=#FFFFFF face=arial size=2>
<strong>".number_format($sumas[$nivel[$ed]][0])."</td>";//imprime sumas totales de las evaluaciones
$totales += $sumas[$nivel[$ed]][0];
}
print "<td bgcolor=#003399 align=center>
<font color=#FFFFFF face=arial size=2>
<strong>".number_format($totales)."
</td>";
}
echo "<br></tr></table><br>
";
}//termina if de condicion 1
else
{
echo "No selecciono ninguna opcion";
}
if(!$_POST['excel']){
print'
<!--<input type=submit value=EXCEL>-->
</form>
';
print'<a href=index.php><font size=2 face=arial>[Atr&aacute;s]</font></a>';
}
?>
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 22:51.