Forum Clubic

Generation de php vers excel avec Spreadsheet/Writer.php

Bonjour tout d"abord,

j’ai essayé de récuperer des données dans ma table mysql vers excel. Mais je recupere seulement une seule ligne, je veux pas ca. J’ai veux recuperer toute les données de la tables dans la feuille du excel. Voici mon code dont j’ai utilise. je vous reppelle que j’utilise prodo framwork.
Merci de m’aider

Voici mon code:

<?php require_once "../Spreadsheet/Writer.php"; require_once "class.writeexcel_workbook.inc.php"; require_once "class.writeexcel_worksheet.inc.php"; class ticket extends TPage { private $bd; public function onInit($param) { parent::onInit($param); $this->bd = new TAdodb; $this->bd->setDataSourceName($this->Application->getUserParameter('DSN')); $data= new Spreadsheet_Excel_Writer(); $data->send('test.xls'); $feuille=&$data->addWorkSheet('Premier feuille de ticket'); $rs = $this->bd->Execute("SELECT ticket.*, compagnie.code AS code_compagnie,compagnie.intitule AS intitule_compagnie, passager.nom AS nom, mode_paiement.intitule AS intitule_mode_paiement FROM ticket JOIN compagnie USING(id_compagnie) JOIN passager USING(id_passager) JOIN mode_paiement USING(id_mode_paiement)"); $feuille->write(0, 0, 'Ticket N°'); $feuille->write(0, 1, 'Nom'); $feuille->write(0, 2, 'Fare'); $feuille->write(0, 3, 'Airport tax'); $feuille->write(0, 4, 'Djibouti tax'); $feuille->write(0, 5, 'Other tax'); $feuille->write(0, 6, 'TOTAL'); $feuille->write(0, 7, 'REMARKS'); $feuille->write(0, 8, 'commission SAVRIES'); $feuille->write(0, 9, 'To be paid Daallo Airlines'); while ($data = mysql_fetch_assoc($rs)) { $feuille->write(1, 0,$donnees['ticket']."-".$donnees['coupon']); $feuille->write(1, 1, $donnees['nom']); $feuille->write(1, 2, $donnees['fare']); $feuille->write(1, 3, $donnees['air_tax']); $feuille->write(1, 4, $donnees['djib_tax']); $feuille->write(1, 5, $donnees['djib_tax']); $feuille->write(1, 6, $donnees['TOTAL']); $feuille->write(1, 7, $donnees['remark']); $feuille->write(1, 8, $donnees['commission']); $feuille->write(1, 9, $donnees['paid_daallo']); $data->close(); } } } ?>

Normal :slight_smile:

(je connais pas la lib, mais j’ai déjà vu une lib écrivant de l’excel)

Remplace ta boucle par ça :

for ($i = 1: $data = mysql_fetch_assoc($rs); ++$i)
{
$feuille->write($i, 0,$donnees[‘ticket’]."-".$donnees[‘coupon’]);
$feuille->write($i, 1, $donnees[‘nom’]);
$feuille->write($i, 2, $donnees[‘fare’]);
$feuille->write($i, 3, $donnees[‘air_tax’]);
$feuille->write($i, 4, $donnees[‘djib_tax’]);
$feuille->write($i, 5, $donnees[‘djib_tax’]);
$feuille->write($i, 6, $donnees[‘TOTAL’]);
$feuille->write($i, 7, $donnees[‘remark’]);
$feuille->write($i, 8, $donnees[‘commission’]);
$feuille->write($i, 9, $donnees[‘paid_daallo’]);
}

$data->close();
// } // vu que $data->close doit être à la fin

Excusez-moi de ce retard, j’etait entraint de faitre de la matenance. J’utilise prado framwork de ce fait il ne prend pas la methode mysql_fetch_array. vous pouviez me donné une autre idée.
voici l’erreur :

Fatal Error

[2] mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource (@line 37 in file F:\wamp\www\projetAviation\aviation\edition\ticket.php).

Debug Backtrace

#1  -- pradoErrorHandler(...)
#2 ticket.php:37 -- mysql_fetch_assoc(...)
#3 TControl.php:459 -- ticket->onInit(...)
#4 TPage.php:1152 -- TControl->onInitRecursive(...)
#5 TPage.php:1023 -- TPage->onInitRecursive(...)
#6 TApplication.php:483 -- TPage->execute()
#7 index.php:3 -- TApplication->run()

Merci de votre collaboration…

C’est quoi ces remarques !?!
Les gens te donnent des idées et toi, mécontent, tu leur réponds qu’ils auraient dû te trouver une autre idée :-@:

De plus, Sans-Nom ne t’a jamais parlé de mysql_fetch_array() :neutre:
Edité le 29/07/2007 à 02:52

Non, je m’excuse. je voudrai simplement dire sur le remarque. Prado framwork n’excute pas cette methode mysql_fetch_array() mais travail sur d’autre methode. je entrains de chercher si je trouve ca px aider d’autre bien sur ! et si deja c aexiste poukoi pas m’aide.

RTFM donc.

(j’ai pas tout saisi non plus, mais si $rs n’est pas une resource SQL valide c’est que $this->bd->Execute ne renvoie pas une resource mySQL. lis la doc de ton framework à ce sujet, pour le côté Excell je pense que tu es assez grand pour le corriger avec mon bout de code)