Estoy tratando de hacer un reporte que extrae todos los datos de mi tabla, pero lo que quiero es que los encabezados de las filas sean personalizados(que yo los defina) y que no ponga el titulo de mis filas. pero no se bien como es que tengo que hacerlo.
Tengo este código que es con el que exporto a excel
Código PHP:
<?
include("../db.php"); // archivo de conexión a base de datos
/*
Mysql To Excel
Generación de excel versión 1.0
*/
#Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
$sql = "SELECT * FROM photo_order ORDER BY numero_orden";
$r = mysql_query( $sql ) or trigger_error( mysql_error($conn), E_USER_ERROR );
$return = '';
if( mysql_num_rows($r)>0){
$return .= '<table border=1>';
$cols = 0;
while($rs = mysql_fetch_row($r)){
$return .= '<tr>';
if($cols==0){
$cols = sizeof($rs);
$cols_names = array();
for($i=0; $i<$cols; $i++){
$col_name = mysql_field_name($r,$i);
$return .= '<th>'.htmlspecialchars($col_name).'</th>';
$cols_names[$i] = $col_name;
}
$return .= '</tr><tr>';
}
for($i=0; $i<$cols; $i++){
#En esta iteración podes manejar de manera personalizada datos, por ejemplo:
if($cols_names[$i] == 'fechaAlta'){ #Fromateo el registro en formato Timestamp
$return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>';
}else if($cols_names[$i] == 'activo'){ #Estado lógico del registro, en vez de 1 o 0 le muestro Si o No.
$return .= '<td>'.htmlspecialchars( $rs[$i]==1? 'SI':'NO' ).'</td>';
}else{
$return .= '<td>'.htmlspecialchars($rs[$i]).'</td>';
}
}
$return .= '</tr>';
}
$return .= '</table>';
mysql_free_result($r);
}
#Cambiando el content-type más las <table> se pueden exportar formatos como csv
header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=photo_order_report.xls");
echo $return;
?>