IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[WriteExcel] REQUIRE ou INCLUDE


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut [WriteExcel] REQUIRE ou INCLUDE
    Bonjour,

    Je suis confronté à un problème "bête" certe mais un problème.

    J'utilise actuellement la classe phpwriteexcel permettant d'inclure des fichiers excel dans une page web.
    Les données que je souhaite inclure sont issues d'une BD MySQL donc par requetes.

    Je dispose donc de trois fichiers :

    - Un fichier comprenant les identifiants de connection à la BD > Connect.php

    - Un fichier me permettant d'effectuer une analyse croisée et d'extraire les données à afficher dans excel

    - Un autre fichier exportant vers excel

    Il faut donc associer les deux premiers fichiers au troisieme par include ou require.

    Mon problème est le suivant : quand j'effectue l'inclusion de connect.php et analysecroisee.php l'exportation ne se fait pas et quand je met le code de analysecroisse.php dans exporation.php pas de pb !

    Alors je ne comprend pas !

    Avant de vous donner le code qui est assez important je préfère receuillir des informations.

    Pour ce cas très très ...

    Cordialement
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 50
    Points : 56
    Points
    56
    Par défaut
    Salut, soyons bien d'accord que quand tu inclus un fichier, le code du fichier à inclure est "copié" dans le fichier courant.
    Donc il faut faire attention si les fichiers à inclure contiennent du code directement executable (par opposition a du code contenu des dans fonctions). En effet si tu inclus un fichier contenant du code php "directement executable" alors que ce morceau de code nécessite un autre morceau qui lui ne sera inclus qu'après.
    Bref, je sais que c'est pas clair ce que je dit, mais vérifie les dépendances entres tes fichier (constantes, variables, ...) et l'ordre dans lequel tu les inclus.

  3. #3
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    MERCI de ta réponse !

    En fait le code contenu dans analyse croisée est entièrement executé avant l'excution de l'exportation.

    Je créer dans le premier une table dont je vais sélectionné les données dans le deuxième, je met les sources :

    Fichier AnalyseCroisee.php
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    <?php
     
    //INCLUSION DU FICHIER DE CONNECTION A LA BASE DE DONNEES
    require("../../../connect.php");
     
    $tabtemp = 'CREATE TABLE LigActiveTemp
    				(NomLignee char(25), 
    				ObtenteurLig varchar(50), 
    				CoObtenteurLig varchar(50),
    				MainteneurLig varchar(50), 
    				OrigGenetiqueLig char(255), 
    				FamOrigineLig varchar(5), 
    				PriveeLig varchar(5), 
    				CommentaireLig char(255), 
    				HSGLig tinyint(1), 
    				CatalogueLig tinyint(1), 
    				NomExtLig varchar(50), 
    				NomminationLig int(4), 
    				BreederLig varchar(50), 
    				UCFLig int(4), 
    				UCMLig int(4), 
    				RecurrentLig varchar(50), 
    				DenomOffLig char(255), 
    				TypeLignee varchar(50),
    				PRIMARY KEY  (NomLignee),
    				KEY NomLignee (NomLignee))';
     
    $temp = mysql_query($tabtemp,$link) or die ('Erreur : '.mysql_error() );
     
    $station = 'SELECT DISTINCT station from TbXLigStationUtilisation order by station';
    $stat = mysql_query($station,$link) or die ('Erreur : '.mysql_error() );
     
    while($rowstation = mysql_fetch_array($stat)){	
     
    		$colstat = ' ALTER TABLE LigActiveTemp ADD COLUMN `'.$rowstation["station"].'` VARCHAR( 30 )';		
    		$addcolstat = mysql_query($colstat,$link) or die ('Erreur : '.mysql_error() );
     
    		$ligact = ' INSERT INTO LigActiveTemp (NomLignee, ObtenteurLig, CoObtenteurLig, MainteneurLig, OrigGenetiqueLig, FamOrigineLig, PriveeLig, CommentaireLig, HSGLig, CatalogueLig,
    		NomExtLig, NomminationLig, BreederLig, UCFLig, UCMLig, RecurrentLig, DenomOffLig, TypeLignee,'.$rowstation["station"].')
    		SELECT TbXLigStationUtilisation.NomLignee, TbLigIdentite.ObtenteurLig, 
    		TbLigIdentite.CoObtenteurLig, TbLigIdentite.MainteneurLig, TbLigIdentite.OrigGenetiqueLig, 
    		TbLigIdentite.FamOrigineLig, TbLigIdentite.PriveeLig, TbLigIdentite.CommentaireLig, TbLigIdentite.HSGLig, 
    		TbLigIdentite.CatalogueLig, TbLigIdentite.NomExtLig, TbLigIdentite.NomminationLig, TbLigIdentite.BreederLig, 
    		TbLigIdentite.UCFLig, TbLigIdentite.UCMLig, TbLigIdentite.RecurrentLig, TbLigIdentite.DenomOffLig, 
    		TbXLigStationUtilisation.TypeLignee,
    		sum(case when Station="'.$rowstation["station"].'" then if(TypeLignee="ACTIVE","A","") else 0 end) as "'.$rowstation["station"].'"
    		FROM TbLigIdentite AS TbLigIdentite 
    		RIGHT JOIN TbXLigStationUtilisation ON TbLigIdentite.NomLignee = TbXLigStationUtilisation.NomLignee
    		WHERE (((TbXLigStationUtilisation.TypeLignee)="ACTIVE") 
    		AND ((TbXLigStationUtilisation.Station)="ARLES" 
    		Or (TbXLigStationUtilisation.Station)="RHODON" 
    		Or (TbXLigStationUtilisation.Station)="NECKARMUHLBACH" 
    		Or (TbXLigStationUtilisation.Station)="HAUTMAUCO" 
    		Or (TbXLigStationUtilisation.Station)="CONVERSION"))
    		GROUP BY TbXLigStationUtilisation.NomLignee, TbLigIdentite.ObtenteurLig, TbLigIdentite.CoObtenteurLig, 
    		TbLigIdentite.MainteneurLig, TbLigIdentite.OrigGenetiqueLig, TbLigIdentite.FamOrigineLig, 
    		TbLigIdentite.PriveeLig, TbLigIdentite.CommentaireLig, TbLigIdentite.HSGLig, TbLigIdentite.CatalogueLig, 
    		TbLigIdentite.NomExtLig, TbLigIdentite.NomminationLig, TbLigIdentite.BreederLig, TbLigIdentite.UCFLig, 
    		TbLigIdentite.UCMLig, TbLigIdentite.RecurrentLig, TbLigIdentite.DenomOffLig, 
    		TbXLigStationUtilisation.TypeLignee
    		ORDER BY TbXLigStationUtilisation.NomLignee';
     
    		$resligac = mysql_query($ligact,$link) or die ('Erreur : '.mysql_error() );
     
    }
    ?>
    Fichier Exportation.php

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
     
    <?php
     
    //FICHIER D'EXPORTATION DES DONNEES DU CATALOGUE LIGNEES VERS EXCEL
     
    //INCLUSION DU FICHIER DE CONNECTION A LA BASE DE DONNEES
    require("../../../connect.php");
     
    //ANALYSE CROISEE	
    $tabtemp = 'CREATE TABLE LigActiveTemp
    				(NomLignee char(25), 
    				ObtenteurLig varchar(50), 
    				CoObtenteurLig varchar(50),
    				MainteneurLig varchar(50), 
    				OrigGenetiqueLig char(255), 
    				FamOrigineLig varchar(5), 
    				PriveeLig varchar(5), 
    				CommentaireLig char(255), 
    				HSGLig tinyint(1), 
    				CatalogueLig tinyint(1), 
    				NomExtLig varchar(50), 
    				NomminationLig int(4), 
    				BreederLig varchar(50), 
    				UCFLig int(4), 
    				UCMLig int(4), 
    				RecurrentLig varchar(50), 
    				DenomOffLig char(255), 
    				TypeLignee varchar(50),
    				PRIMARY KEY  (NomLignee),
    				KEY NomLignee (NomLignee))';
     
    $temp = mysql_query($tabtemp,$link) or die ('Erreur : '.mysql_error() );
     
    $station = 'SELECT DISTINCT station from TbXLigStationUtilisation order by station';
    $stat = mysql_query($station,$link) or die ('Erreur : '.mysql_error() );
     
    while($rowstation = mysql_fetch_array($stat)){	
     
    		$colstat = ' ALTER TABLE LigActiveTemp ADD COLUMN `'.$rowstation["station"].'` VARCHAR( 30 )';		
    		$addcolstat = mysql_query($colstat,$link) or die ('Erreur : '.mysql_error() );
     
    		$ligact = ' INSERT INTO LigActiveTemp (NomLignee, ObtenteurLig, CoObtenteurLig, MainteneurLig, OrigGenetiqueLig, FamOrigineLig, PriveeLig, CommentaireLig, HSGLig, CatalogueLig,
    		NomExtLig, NomminationLig, BreederLig, UCFLig, UCMLig, RecurrentLig, DenomOffLig, TypeLignee,'.$rowstation["station"].')
    		SELECT TbXLigStationUtilisation.NomLignee, TbLigIdentite.ObtenteurLig, 
    		TbLigIdentite.CoObtenteurLig, TbLigIdentite.MainteneurLig, TbLigIdentite.OrigGenetiqueLig, 
    		TbLigIdentite.FamOrigineLig, TbLigIdentite.PriveeLig, TbLigIdentite.CommentaireLig, TbLigIdentite.HSGLig, 
    		TbLigIdentite.CatalogueLig, TbLigIdentite.NomExtLig, TbLigIdentite.NomminationLig, TbLigIdentite.BreederLig, 
    		TbLigIdentite.UCFLig, TbLigIdentite.UCMLig, TbLigIdentite.RecurrentLig, TbLigIdentite.DenomOffLig, 
    		TbXLigStationUtilisation.TypeLignee,
    		sum(case when Station="'.$rowstation["station"].'" then if(TypeLignee="ACTIVE","A","") else 0 end) as "'.$rowstation["station"].'"
    		FROM TbLigIdentite AS TbLigIdentite 
    		RIGHT JOIN TbXLigStationUtilisation ON TbLigIdentite.NomLignee = TbXLigStationUtilisation.NomLignee
    		WHERE (((TbXLigStationUtilisation.TypeLignee)="ACTIVE") 
    		AND ((TbXLigStationUtilisation.Station)="ARLES" 
    		Or (TbXLigStationUtilisation.Station)="RHODON" 
    		Or (TbXLigStationUtilisation.Station)="NECKARMUHLBACH" 
    		Or (TbXLigStationUtilisation.Station)="HAUTMAUCO" 
    		Or (TbXLigStationUtilisation.Station)="CONVERSION"))
    		GROUP BY TbXLigStationUtilisation.NomLignee, TbLigIdentite.ObtenteurLig, TbLigIdentite.CoObtenteurLig, 
    		TbLigIdentite.MainteneurLig, TbLigIdentite.OrigGenetiqueLig, TbLigIdentite.FamOrigineLig, 
    		TbLigIdentite.PriveeLig, TbLigIdentite.CommentaireLig, TbLigIdentite.HSGLig, TbLigIdentite.CatalogueLig, 
    		TbLigIdentite.NomExtLig, TbLigIdentite.NomminationLig, TbLigIdentite.BreederLig, TbLigIdentite.UCFLig, 
    		TbLigIdentite.UCMLig, TbLigIdentite.RecurrentLig, TbLigIdentite.DenomOffLig, 
    		TbXLigStationUtilisation.TypeLignee
    		ORDER BY TbXLigStationUtilisation.NomLignee';
     
    		$resligac = mysql_query($ligact,$link) or die ('Erreur : '.mysql_error() );
     
    }
     
    //DECLARATION DU TABLEAU CONTENANT L'ENSEMBLE DES CHAMPS DE LA REQUETE
    $champs = array("NomLignee","ObtenteurLig","CoObtenteurLig","MainteneurLig","OrigGenetiqueLig","FamOrigineLig","PriveeLig","CommentaireLig","HSGLig","CatalogueLig",
    "NomExtLig","NomminationLig","BreederLig","UCFLig","UCMLig","RecurrentLig","DenomOffLig","TypeLignee");
     
    //ON AJOUTE AU TABLEAU PRECEDENT TOUS LES NOMS DE STATIONS PRESENT EN BD
    $station = 'SELECT DISTINCT station from TbXLigStationUtilisation order by station';
    $stat = mysql_query($station,$link) or die ('Erreur : '.mysql_error() );
    $j = 18;
    while($row = mysql_fetch_array($stat)){			
    	  $champs[$j] = $rowstation["station"];
    	  $i++;		
    }
     
    //RECUPERATION DE LA TAILLE DE CE TABLEAU
    $taille = count($champs);
     
    //REQUETE DE SELECTION DES DONNEES A AFFICHEES
    $select = 'SELECT * From LigActiveTemp';
     
    //CONNECTION A LA BASE DE DONNEES
    	$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    	$total = mysql_num_rows($result);
     
    //INCLUSION DE LA CLASSE PHPWRITEEXCEL	
    	require_once "../../../Classes/class.writeexcel_workbook.inc.php";
    	require_once "../../../Classes/class.writeexcel_worksheet.inc.php";
     
    //CREATION DU FICHIER TEMPORAIRE EXCEL + INSTANCIATION D'UN NOUVEL OBJET DE LA CLASSE PHPWRITEEXCEL
    	$fname = tempnam("/tmp", "simple.xls");
    	$workbook = &new writeexcel_workbook($fname);
    	$worksheet = &$workbook->addworksheet();
     
    //ECRITURE SUR LE FICHIER EXCEL GRACE A LA METHODE WRITE DE PHPWRITEEXCEL	
     
    	//ECRITURE DE LA PREMIERE LIGNE (IDENTIFIANT DE CHAQUES CHAMPS)
    	for($j=0;$j<=($taille-1);$j++){
    		$worksheet->write(1,$j,$champs[$j]);
    	}
     
    	//ECRITURE DES DONNEES EN FONCTION DES CHAMPS OU COLONNES
    	$i=2;
        while($row = mysql_fetch_array($result)) {
            for($j=0;$j<=($taille-1);$j++){
    				$worksheet->write($i,$j,$row["$champs[$j]"]);
    		}
    	$i++;	
        }
     
    //FERMETURE DU CLASSEUR TEMPORAIRE EXCEL
    	$workbook->close();
     
    //INTEGRATION DU WORKBOOK EXCEL DANS LA PAGE WEB GRACE A LA FONCTION HEADER DE PHP
    	header("Content-Type: application/x-msexcel; name=\"example-simple.xls\"");
    	header("Content-Disposition: inline; filename=\"example-simple.xls\"");
     
    //OUVERTURE DU FICHIER EXCEL
    	$fh=fopen($fname, "rb");
    	fpassthru($fh);
     
    //DESTRUCTION DE CE FICHIER
    	unlink($fname);
     
    //ON DROP ICI LA TABLE TEMPORAIRE CREE DANS LE FICHIER D'ANALYSE CROISEE
    $drop = 'DROP TABLE LigActiveTemp';
    $drope = mysql_query($drop,$link) or die ('Erreur : '.mysql_error() );
    ?>
    J'essaye donc d'inclure analysecroisée.php dans exportation.php en même temps que le fichier de connection à la BD connect.php.

    Dans ce cas la, l'exportation n'as pas lieu a cause de ces includes.

    Je continue à chercher de mon coté, j'attends vos réponses merci !
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 50
    Points : 56
    Points
    56
    Par défaut
    As tu essayé en enlevant le require connect.php du fichier analysecroisee.php, vu que de toute façon le fichier auras précédemment été inclus dans exportation.
    Si tu ne trouve toujours pas, postes-nous le contenu de connect.php (sans les identifiants bien sur).
    Est tu sur de n'avoir aucun message d'erreur, peut-être dans le source du fichier excel résultant.

  5. #5
    Membre actif Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Points : 246
    Points
    246
    Par défaut
    J'ai essayé de mettre les identifiants de connection et cela revient au même impossible d'exporter.

    Mon fichier connect.php fonctionne puisque je l'utilise pour d'autres scripts, donc à mon avis cela ne vient pas de ca.

    Lors de mon exportation, et lorsque j'essaye d'inclure les deux fichiers, il me genère pas une erreur mais une mauvaise interprétation avec des carrés, des codes illisibles.

    De plus, il n'arrive pas à exécuter la commande UNLIK à la fin du script.

    Voila ce que je peut dire !
    while (true) echo 'comique';
    Du comique de répétition ...
    Pour des questions de lisibilité, utilisez la balise [code]
    Si votre problème est résolu, n'oubliez pas le tag

Discussions similaires

  1. Require ou include d'un fichier php - Fichier php appelé par un call POST jQuery
    Par prinssdaraby dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/08/2012, 14h19
  2. Réponses: 7
    Dernier message: 23/05/2012, 09h00
  3. [Système] require vs include
    Par elvan49 dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2007, 09h41
  4. Ralentissements avec "require" ou "include" ?
    Par damjal dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2006, 22h04
  5. Require et include
    Par om.rava dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2005, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo