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() );
?> |
Partager