Bonjour,
je suis en train de faire une interface en PHP5 selon l'architecture MVC, avec Mysql, je souhaite exporter le contenu de ma table dans un fichier Excel , et les traiter pour afficher un graphe dans une autre feuille pour ce faire j'ai écrit ces lignes de code dans 3 emplacements différentes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
1_au niveau du controleur:function generatecsv(){
	$this->layout = 'layout';
		$this->loadModel('disque');
		$dis = new Disque();
		$disque = $dis->OutCSV();
		echo jason_encode(0);
		exit;
	}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 au niveau Model : function OutCSV() {
	$cnx = new Connection();
	try {
        $stmt =$cnx->getDB()->query("SELECT * FROM disque");
		$fields =$stmt->columnCount();
		$header = array();
		for ($i = 0; $i < $fields; $i++) {
		$header[] = $stmt->getColumnMeta($i);
		}
		$f = fopen(WEBROOT."/public/","w"); 
		header("Content-type: application/vnd.ms-excel");
		header("Content-disposition: attachment; filename=test.csv");
		header("Pragma: no-cache");
		header("Expires: 0");
		header('Cache-Control: must-revalidate');
		fputcsv($f, $header);
 
		while ($row = $stmt->fetch()) {
			fputcsv($f, $row);
		}
		fclose($f);
        } catch (PDOException $e) {
            echo $e->getMessage() . "<br>";
            echo "la requete n'est pas valide";
            exit;
        } 
 
     }
et au niveau de view :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<div class="bottom">
							<a href="#" rel="new" class="linkform" style="margin: 15px 0px 14px 20px;width:140px;">ADD Disque</a>
							<a href="#" rel="recherche" class="linkform" style="margin: 15px 0px 14px 20px;width:140px;">Find Disque Date</a>
							<input type="submit" id="find" style="margin: 15px 0px 14px 20px;width:140px;float:left;" value="Find"/>
							<a href="<?php echo  WEBROOT .'/index/generatecsv' ;?>" id="csv" style="margin: 10px 0px 20px 185px;width:140px;float:left;" target='_black'>Générer CSV</a>
							<div class="clear"></div>
						</div>
mon probléme c'est que j'obtient un fichier Excel vide , contenant des messages d'erreurs suivantes :

<b>Warning</b>: fopen(/Test//public/): failed to open stream: No such file or directory in <b>C:\xampp\htdocs\Test\models\disque.php</b> on line <b>136</b><br />
<br />
<b>Warning</b>: fputcsv() expects parameter 1 to be resource, boolean given in <b>C:\xampp\htdocs\Test\models\disque.php</b> on line <b>142</b><br />
s'il vous plait comment faire pour afficher les données de ma table et quels partie modifier ?