par
Jeannot1974 » 26 août 2005, 17:12
Bon en fait ça colle pas avec mon besoin...
La raison pour laquelle je souhaite que cela se fasse dans
UNE SEULE REQUETE SQL, est simple, c'est pour générer un fichier XLS ayant en entrée
UNE SEULE REQUETE et non pas UNE FONCTION....
Ci-après la dite fonction :
function export_XLS($req, $Fnm, $db) {
//include("fct_nettoiexls.php");
nettoie_XLS();
// Calcul la date et l'heure de génération du fichier EXCEL
$date = date("Ymd-His");
// Composition du nom unique du fichier EXCEL
$Fnm = "export/".$date."_".$Fnm;
//$Fnm = "export/".$Fnm;
if (file_exists($Fnm)) {
unlink($Fnm);
}
// Ouverture du fichier en ecriture
$inF = fopen($Fnm,"w+");
fputs($inF,"<table border='1'>\n");
if ($req) {
$res = mysql_db_query($db,$req) or die ("MESSAGE d'ERREUR : ".mysql_error(). " - ".$req);
$i = 0;
//Construction de l'entete du tableau
$chaine = "<tr bgcolor='#EECC11'>";
while ($i < mysql_num_fields($res)) {
$meta = mysql_fetch_field($res, $i);
if (!$meta) {
echo "Aucun champ n'est disponible<br>\n";
}
$chaine .= "<th>".$meta->name."</th>";
$i++;
}
$chaine .= "</tr>";
fputs($inF,$chaine);
while ($row = mysql_fetch_array($res)) {
$chaine = "<tr>";
for ($i=0 ; $i < mysql_num_fields($res) ; $i++) {
$chaine .= "<td>".$row[$i]."</td>";
}
$chaine .= "</tr>\n";
fputs($inF,$chaine);
}
}
else {
echo "Aucune requête n'a été spécifiée...";
}
fputs($inF,"</table>");
fclose($inF);
return $Fnm;
}
Aux vus de ce code, tu comprends bien, qu'il est difficile (voire impossible d'adopter ta solution (qui est très bonne cependant)).
Bref, c'est pas encore ça, mais on progresse... En fait la soluce serait de faire une boucle au niveau des champs du SELECT, mais c'est pas possible, donc faut trouver une autre solution...
Je suis sur une autre piste, et je te tiendrais au courant si j'ai la solution...
Bon en fait ça colle pas avec mon besoin...
La raison pour laquelle je souhaite que cela se fasse dans [b]UNE SEULE REQUETE SQL[/b], est simple, c'est pour générer un fichier XLS ayant en entrée [u][b]UNE SEULE REQUETE[/b][/u] et non pas UNE FONCTION....
Ci-après la dite fonction :
[php]function export_XLS($req, $Fnm, $db) {
//include("fct_nettoiexls.php");
nettoie_XLS();
// Calcul la date et l'heure de génération du fichier EXCEL
$date = date("Ymd-His");
// Composition du nom unique du fichier EXCEL
$Fnm = "export/".$date."_".$Fnm;
//$Fnm = "export/".$Fnm;
if (file_exists($Fnm)) {
unlink($Fnm);
}
// Ouverture du fichier en ecriture
$inF = fopen($Fnm,"w+");
fputs($inF,"<table border='1'>\n");
if ($req) {
$res = mysql_db_query($db,$req) or die ("MESSAGE d'ERREUR : ".mysql_error(). " - ".$req);
$i = 0;
//Construction de l'entete du tableau
$chaine = "<tr bgcolor='#EECC11'>";
while ($i < mysql_num_fields($res)) {
$meta = mysql_fetch_field($res, $i);
if (!$meta) {
echo "Aucun champ n'est disponible<br>\n";
}
$chaine .= "<th>".$meta->name."</th>";
$i++;
}
$chaine .= "</tr>";
fputs($inF,$chaine);
while ($row = mysql_fetch_array($res)) {
$chaine = "<tr>";
for ($i=0 ; $i < mysql_num_fields($res) ; $i++) {
$chaine .= "<td>".$row[$i]."</td>";
}
$chaine .= "</tr>\n";
fputs($inF,$chaine);
}
}
else {
echo "Aucune requête n'a été spécifiée...";
}
fputs($inF,"</table>");
fclose($inF);
return $Fnm;
}[/php]
Aux vus de ce code, tu comprends bien, qu'il est difficile (voire impossible d'adopter ta solution (qui est très bonne cependant)).
Bref, c'est pas encore ça, mais on progresse... En fait la soluce serait de faire une boucle au niveau des champs du SELECT, mais c'est pas possible, donc faut trouver une autre solution...
Je suis sur une autre piste, et je te tiendrais au courant si j'ai la solution...