Voy a intentar ser lo mas explicativo posible, si quedan dudas preguntenme. Tengo el siguiente problema.
Estoy creando una mini aplicacion en php, el codigo de la aplicacion mucho no importa, basicamente es un TextArea en un formulario en html, que al enviarlo, saca informacion del texto y la ingresa en una BD, e ingresa un campo que es EL TEXTAREA.
Hasta ahi, todo bien, me inserta en la BD todo correctamente, es mas cuando lo quiero mostrar en html me anda todo de 10, usando el nl2br.
Mi problema viene cuando quiero crear un excel apartir de lo que esta en la BD.
El codigo del excel es:
Excel.php
Código PHP:
<?
$host = "localhost";
$user = "root";
$pass = "***";
$db = "***";
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!");
mysql_select_db($db) or die ("Unable to select database!");
$sql = "
SELECT
*
FROM
****
WHERE
status LIKE 'Open'
ORDER BY
DAY DESC
";
$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><center>'.htmlspecialchars($col_name).'</center></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 if($cols_names[$i] == '****'){
$return .= '<td>'.$rs[$i].'</td>';
}else if($cols_names[$i] == '****'){
$rs[$i] = subStr($rs[$i], 0, -1);
if ( $rs[$i] == 'Warning') {
$return .= "<td bgcolor='04E4FD'><center>".htmlspecialchars($rs[$i])."</center></td>";
} elseif ( $rs[$i] == 'Major') {
$return .= "<td bgcolor='FDA604'><center>".htmlspecialchars($rs[$i])."</center></td>";
} elseif ( $rs[$i] == 'Critical') {
$return .= "<td bgcolor='FD0411'>".htmlspecialchars($rs[$i])."</center></td>";
} else { $return .= '<td><center>'.htmlspecialchars($rs[$i]).'</center></td>';}
}else{
$return .= '<td><center>'.htmlspecialchars($rs[$i]).'</center></td>';
}
}
$return .= '</tr>';
}
$return .= '</table>';
mysql_free_result($r);
}
#Cambiando el content-type más las <table> se pueden exportar formatos como csv
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=Prueba_".date('d-m-Y').".xls");
header("Content-Transfer-Encoding: binary ");
echo $return;
?>
Busque por todos lados y no encontre como hacerlo.
Si alguien me puede dar una mano le agradeceria
Saludos,