Newsgroup: it.comp.www.php
Titolo: Come esportare una tabella in un file di excel

Ciao a tutti,
sto' provando ad esportare una tabella mysql in un file di excel, eseguendo
lo script qui sotto (lo so' e' scritto che fa' schifo) mi succede che si
apre la finestra per salvare il file ma invece di scaricarmi l'output della
tabella cerca di scaricarmi lo script php, qualcuno e' in grado di aiutarmi
?
grazie in aticipo
ecco lo script
$db="xxxxxx";
$tbl="zzzzzzz";
mysql_connect("localhost", "yyyyyyyy", "hhhhhhhh")
or die (mysql_error());
mysql_select_db($db)
or die (mysql_error());
$rs=mysql_query("SELECT * FROM $tbl")
or die (mysql_error());
$fields=mysql_num_fields($rs);
$cvs = "Contenuto CSV";
$filename = "excelFname.csv";
header ("Content-type: application/vnd.ms-excel");
header ("Accept-Ranges: bytes");
header ("Content-Length: " . strlen ($cvs));
header ("Content-Disposition: attachment; filename=" . $filename . ";");
print ($cvs);
for ($i=0; $i < $fields; $i++) {
if (mysql_field_name($rs,$i) != "ID")
// in una tabella excel il primo entry non puo' essere 'ID'
echo "". mysql_field_name($rs,$i) ."\t";
else
echo "Index\t";
}
echo "\n";
while ($row = mysql_fetch_row($rs)) {
$fl=mysql_num_fields($rs);
for ($i=0; $i<$fl; $i++)
echo "$row[$i]\t";
echo "\n";
}

 qualcuno e' in grado di aiutarmi ?
Ti allego copia del tuo script sensibilimente migliorato e funzionante.
Se sei un newbie? Leggi questo 
http://url.repository.biz/go/1
<?php
function safe_set(&$var_true,$var_false="")
{
	if (isset ($var_true))
	{ return true; }
	else
	{
		$var_true = $var_false;
		return false;
	}
}
define ("DB_HOST", "127.0.0.1");
define ("DB_USER", "root");
define ("DB_PASSWORD", "");
define ("DB_DATABASE", "mysql");
define ("DB_TABLE", "user");
define ("CSV_FILENAME", "excelFname.csv");
define ("CSV_FIELD_SEPARATOR", ";");
define ("CSV_ROW_SEPARATOR", "\r\n");
mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) or die (mysql_error());
mysql_select_db (DB_DATABASE) or die (mysql_error());
$rs = mysql_query ("SELECT * FROM " . DB_TABLE) or die (mysql_error());
$fields_num = mysql_num_fields ($rs);
$field_names = array ();
$cvs = "";
for ($i = 0; $i < $fields_num; $i++) 
{
	$field_names[] = mysql_field_name ($rs, $i);
	if (mysql_field_name ($rs,$i) != "ID")
	{ $cvs .= mysql_field_name($rs,$i) . CSV_FIELD_SEPARATOR; } 
	else
	{ $cvs .= "Index" . CSV_FIELD_SEPARATOR; }
}
$cvs .= CSV_ROW_SEPARATOR;
while ($row = mysql_fetch_assoc ($rs)) 
{ 
	foreach ($field_names as $field_name)
	{ 
		safe_set ($row[$field_name], ""); 
		$cvs .= '"' . $row[$field_name] . '"' . CSV_FIELD_SEPARATOR;
	}
	$cvs .= CSV_ROW_SEPARATOR;
}
header ("Content-type: application/vnd.ms-excel;");
header ("Accept-Ranges: bytes");
header ("Content-Length: " . strlen ($cvs));
header ("Content-Disposition: attachment; filename=".CSV_FILENAME.";");
print ($cvs);
?>
Saluti.
-- 
I'am what I'am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1

 header ("Content-Length: " . strlen ($cvs));
scusa, ma qui gli dici che la dimensione del file excel e' la lunghezza della
stringa $cvs ... prova a levarlo e usa solo Content-type e Content-Disposition.
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}