soucis avec tableau et requetes ...

Eléphanteau du PHP | 39 Messages

11 mars 2008, 12:46

bonjour,

Je suis entrain de développer une gestion de cantine en php et j'ai un peu de mal pour un module !!
C'est a dire celui de la compta .
J'arrive a mettre a faire des compta par personne et par semaine mais le problème c'est que maintenant que j'ai proposé ca a la compta ils veulent sous excel !! (les chiants ...)

Je vous explique un peu ce que je voudrais ...

Un tableau excelsous cette forme


-------------------------------------------------------------------------------------
utilisateur | Nombre de repas | Repas à 3 Elements | Repas à 5 Elements
-------------------------------------------------------------------------------------
user1____|_____ 5_________|_______3_________|________2________
user2____|_____ 5_________|_______4_________|________1________
user3____|_____ 5_________|_______5_________|________0________
user4____|_____ 5_________|_______3_________|________2________
user5____|_____ 5_________|_______3_________|________2________
user6____|_____ 5_________|_______3_________|________2________
user7____|_____ 5_________|_______3_________|________2________
user8____|_____ 5_________|_______3_________|________2________
user9____|_____ 5_________|_______3_________|________2________

Je vous donne un exemple de ma base :

Image

Comme vous pouvez le voir l'utilisateur : colcombj à pris:

5 repas
dont 5 avec 3 elements
et 0 avec 5 elements !!

Voila !! j'aimerai avoir ca comme resultat dans un tableau xls !! mais comment faire..

voici ce que j'ai deja fait.. en php

<?
include("bdd_init.php5");
header("Content-type:  application/vnd.ms-excel");
header("Content-disposition : attachement");
	

print("<table>");
	print("<tr>");
		print("<td bgcolor='#CCCCCC'> Nom de la Personne</td>");
		print("<td></td>");
		print("<td> Le nombre de Repas </td>");
		print("<td></td>");
		print("<td bgcolor='#CCCCCC'> Repas à 3 Élements </td>");
		print("<td></td>");
		print("<td> Repas à 5 Élements </td>");
		print("<td bgcolor='#CCCCCC'></td>");
	print("</tr>");

print("</table>");

?>
désolé je ne sais pas trop faire les tableaux en php !!

Merci de votre aide...

Eléphanteau du PHP | 39 Messages

12 mars 2008, 15:47

Je viens d'essayer ca ..
<?
include("bdd_init.php5");
header("Content-type:  application/vnd.ms-excel");
header("Content-disposition : attachement");
?>

<table border='1'>
        <tr>

            <td >Nom de la Personne
				<? 
				$requete_txt = "SELECT distinct admin_id from menu_utilisateur order by admin_id ASC";
				$compta = $bdd->result_to_array($bdd->query($requete_txt));
				for($j=0;$j<count($compta);$j++)
				{print("<td>".$compta[$j][0]." </td>");}
				?>
			</td>
        </tr>
        
		
		<tr>
            <td>Le nombre de repas
				<? 
				$requete_txt = "SELECT count( menu_jour )  FROM menu_utilisateur WHERE menu_semaine ='10' ";
				$compta = $bdd->result_to_array($bdd->query($requete_txt));
				for($j=0;$j<count($compta);$j++)
				{print("<td>".$compta[$j][0]." </td>");}
				?>
			</td>
        </tr>
		
		<tr>
            <td>Repas à 3 Élements
			</td>
        </tr>
		
		
		<tr>
            <td>Repas à 5 Élements
			</td>
        </tr>
</table>
	
Mais le pb c'est que je n'arrive pas a voir le bon comptage des repas !!

Eléphanteau du PHP | 28 Messages

12 mars 2008, 18:15

Bonjour,

Je ne pense pas que l'on puisse générer des tableaux Excel directement à partir de tableaux XHTML.

A mon avis, il faudra que tu utilise l'objet COM dont tu as un article disponible sur developpez.com :)

Bonne journée !

Mammouth du PHP | 19672 Messages

13 mars 2008, 09:33

As-tu trouvé ce site ?

Générer un format xls, ce n'est pas générer du html. Les classes de writeExcel sont précisément faites pour ça. C'est du PHP4 mais ça fonctionne bien.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 39 Messages

13 mars 2008, 09:35

Merci j'ai deja consuleté ce site...

voila ce que j'arrive a obtenir !! mais maintenant il me faut un truc pour mettre 2 tableau cote a cote ..
<?
include("bdd_init.php5");
header("Content-type:  application/vnd.ms-excel");
header("Content-disposition : attachement");
?>

<table border='1'>
<tr>
<td><h5 class="Style2">Nom d'utilisateur </h5></td>
<td><h5 class="Style2">Semaine</h5></td>
<td><h5 class="Style2">Jour</h5></td>
<td><h5 class="Style2">Nb de plats</h5></td>
</tr>

<?
$requete_txt = "SELECT admin_id, menu_semaine, menu_jour, ( IF( menu_entree = '', 0, 1 ) + IF( menu_resistance = '', 0, 1 ) + IF( menu_legume = '', 0, 1 ) + IF( menu_fromage = '', 0, 1 ) + IF( menu_dessert = '', 0, 1 )) AS Nb_repas FROM menu_utilisateur WHERE menu_semaine = '10' ORDER BY admin_id ASC ";
$result = $bdd->result_to_array($bdd->query($requete_txt));
for($i=0;$i<count($result);$i++)
	{
	print("<td>".stripslashes($result[$i][0])."</td>");
	print("<td>".stripslashes($result[$i][1])."</td>");
	print("<td>".stripslashes($result[$i][2])."</td>");
	print("<td>".stripslashes($result[$i][3])."</td>");
	print("<td>"
	print("</tr>");
	}



?>
</table>

Mammouth du PHP | 19672 Messages

13 mars 2008, 09:38

Tableaux HTML ou tableaux Excel ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 39 Messages

13 mars 2008, 09:39

tableau html mais avec extraction de donnée

Mammouth du PHP | 19672 Messages

13 mars 2008, 09:41

Fais pas tout en même temps.

Commence par résoudre le problème de mise en page en construisant une maquette HTML avec des données en dur le temps d'ajuster les positionnement des différents éléments de la page.

Quand le résultat sera satisfaisant, tu disposeras de tous les éléments nécessaires pour construire dynamiquement chaque tableau avec les données des fichiers Excel.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 39 Messages

13 mars 2008, 09:42

ca yest le tableau est maintenant construit !!
il falait mettre float:left ..

Mammouth du PHP | 19672 Messages

13 mars 2008, 09:43

Si c'est résolu, n'oublie pas de marquer le sujet comme tel ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 39 Messages

13 mars 2008, 09:45

le sujet n'est pas totalement résolu dans le sens des requetes SQL !!
sais tu comment je peux faire en sql pour avoir ca ?

-------------------------------------------------------------------------------------
utilisateur | Nombre de repas | Repas à 3 Elements | Repas à 5 Elements
-------------------------------------------------------------------------------------
user1____|_____ 5_________|_______3_________|________2________
user2____|_____ 5_________|_______4_________|________1________
user3____|_____ 5_________|_______5_________|________0________
user4____|_____ 5_________|_______3_________|________2________
user5____|_____ 5_________|_______3_________|________2________
user6____|_____ 5_________|_______3_________|________2________
user7____|_____ 5_________|_______3_________|________2________
user8____|_____ 5_________|_______3_________|________2________
user9____|_____ 5_________|_______3_________|________2________

Petit nouveau ! | 6 Messages

13 mars 2008, 10:06

Salut, moi j'écris simplement les informations séparées par un point-virgule dans un fichier .csv

// ouverture du fichier en écriture pour l'inscription
$fp = fopen("fichier.csv","a");
// on va a la ligne
fputs($fp, "\n");
// on écrit les informations dans le fichier .csv
fputs($fp, "$1er_info;$2eme_info;$3eme_info;$4eme_info");
fclose($fp);

Ensuite tu l'importe sur ton ordinateur et tu l'ouvre avec excel.

Eléphanteau du PHP | 39 Messages

13 mars 2008, 10:26

Ce que je recherche maintenant c'est la requete sql !!

Mammouth du PHP | 19672 Messages

13 mars 2008, 10:32

le sujet n'est pas totalement résolu dans le sens des requetes SQL !!
sais tu comment je peux faire en sql pour avoir ca ?

-------------------------------------------------------------------------------------
utilisateur | Nombre de repas | Repas à 3 Elements | Repas à 5 Elements
-------------------------------------------------------------------------------------
user1____|_____ 5_________|_______3_________|________2________
user2____|_____ 5_________|_______4_________|________1________
user3____|_____ 5_________|_______5_________|________0________
user4____|_____ 5_________|_______3_________|________2________
user5____|_____ 5_________|_______3_________|________2________
user6____|_____ 5_________|_______3_________|________2________
user7____|_____ 5_________|_______3_________|________2________
user8____|_____ 5_________|_______3_________|________2________
user9____|_____ 5_________|_______3_________|________2________
Il faut que tu poses la question autrement : il semble qu'il y ait des agrégats dans le résultat attendu, à savoir des totaux de plusieurs colonnes. Donc définis que doit contenir quelle colonne dans le résultat en le formulant simplement, par exemple :
- Utilisateur : identifiant;
- Nombre de repas : col_abc + col_def
- Repas à 3 éléments : col_abc * 123
- Etc.. : etc...

À partir de là, tu pourras rédiger ta question en SQL plus facilement :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 39 Messages

13 mars 2008, 10:39

il me faut:

Colonne 1 : le nom d'utilisateur
Colonne 2 : le nombre de fois que la personne à manger
Colonne 3 : le nombre de repas à 3 elements
Colonne 4 : le nombre de repas à 5elements

ca me depasse au niveau sql !!

un ti coup de main ca serai sympa :)