Foros del Web » Programando para Internet » PHP »

Exportaciona excel

Estas en el tema de Exportaciona excel en el foro de PHP en Foros del Web. Buenas tardes tengo este codigo Código PHP: <?php if (isset( $_POST [ "tipo" ]))  $buscar  =  $_POST [ "tipo" ]; // Cargo el contenido de connect-db.php con la conexión a la base de datos y credenciales include( 'connect-db.php' ); $dato = ...
  #1 (permalink)  
Antiguo 25/05/2012, 08:25
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Exportaciona excel

Buenas tardes tengo este codigo

Código PHP:
<?php

if (isset($_POST["tipo"])) $buscar $_POST["tipo"];

// Cargo el contenido de connect-db.php con la conexión a la base de datos y credenciales
include('connect-db.php');

$dato='';
$header='';

// Realiza la consulta SQL donde saca el nombre de la sede
$sql ="SELECT ip,nombre,`desc`,tipo,sede FROM gestionip WHERE tipo=" $buscar "";             
$result mysql_query($sql);
$fields mysql_num_fields($result);
//aquí contamos el número de fields en la tabla

for ($i 0$i $fields$i++) {
    
$header .= mysql_field_name($result$i);
}
//aquí vamos tomando los nombre de los fields


$resultCat=mysql_query($sql);
while(
$rowCat mysql_fetch_array($resultCat)) {
    
$sql="SELECT DISTINCT ip,nombre,`desc`,tipo,sede FROM gestionip WHERE tipo=" $buscar "";
    
$result mysql_query($sql);

    while(
$row mysql_fetch_row($result)) {
        
$line '';
        foreach(
$row as $value) {                                            
            if ((!isset(
$value)) OR ($value == "")) {
                
$value "\t";
            } else {
                
$value str_replace('"''""'$value);
                
$value '"' $value '"' "\t";
            }
            
$line .= $value;
        }
        
$dato .= trim($line)."\n";
    }
}

$dato str_replace("\r","",$dato); 

if (
$dato == "") {
    
$dato "\n(0) Records Found!\n";                        


header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=extraction.xls");
header("Pragma: no-cache");
header("Expires: 0");
print 
"$header\n$dato"

?>
El proposito del codigo es apartir de uan consulta que hago al mysql quiero que esa info que deberia de salir por pantalla me la escriba en un excel.

Lo que es abrir el excel lo hace bien pero dentro del excel en vez de la informacion me pone estos dos errores

Warning : mysql_num_fields() expects parameter 1 to be resource, boolean given in report.php on line 14
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in report.php on line 24

A ver si me podeis ayudar gracias.
  #2 (permalink)  
Antiguo 25/05/2012, 09:55
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: Exportaciona excel

al parecer no estas sacando nada de la base y las funciones se ejecutan llamando a nada

por eso antes de proceguir con cualquier proceso despues de una llamada a la base de datos hay que comocar
mysql_num_rows para verificar si tu consulta saco algo de la base sino somplemente no preocesar los "resultados de la llamada a la base de datos".

usa esto

Código PHP:
<?php

if (isset($_POST["tipo"])) $buscar $_POST["tipo"];

// Cargo el contenido de connect-db.php con la conexión a la base de datos y credenciales
include('connect-db.php');

$dato='';
$header='';

// Realiza la consulta SQL donde saca el nombre de la sede 
$sql ="SELECT ip,nombre,`desc`,tipo,sede FROM gestionip WHERE tipo=" $buscar "";             
$result mysql_query($sql);
$fields mysql_num_fields($result); 
if(
mysql_num_rows($result)==0){
die(
"no hay datos que procesar, revisa la consulta");

}
//aquí contamos el número de fields en la tabla

for ($i 0$i $fields$i++) {
    
$header .= mysql_field_name($result$i);
}
//aquí vamos tomando los nombre de los fields


$resultCat=mysql_query($sql);
while(
$rowCat mysql_fetch_array($resultCat)) {
    
$sql="SELECT DISTINCT ip,nombre,`desc`,tipo,sede FROM gestionip WHERE tipo=" $buscar "";
    
$result mysql_query($sql);

    while(
$row mysql_fetch_row($result)) {
        
$line '';
        foreach(
$row as $value) {                                            
            if ((!isset(
$value)) OR ($value == "")) {
                
$value "\t";
            } else {
                
$value str_replace('"''""'$value);
                
$value '"' $value '"' "\t";
            }
            
$line .= $value;
        }
        
$dato .= trim($line)."\n";
    }
}

$dato str_replace("\r","",$dato); 

if (
$dato == "") {
    
$dato "\n(0) Records Found!\n";                        


header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=extraction.xls");
header("Pragma: no-cache");
header("Expires: 0");
print 
"$header\n$dato"

?>

Última edición por enlinea777; 25/05/2012 a las 09:56 Razón: reeoerror de sintaxis

Etiquetas: excel, mysql, sql, tabla
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 21:39.