soucis avec tableau et requetes ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : soucis avec tableau et requetes ...

par jp.kerloch » 13 mars 2008, 14:09

Mercip our tout cyrano !!
J'ai trouvé ce matin comment faire..
je mets la solution pour celui en a besoin ! a toute et encore merci :)
<?
include("bdd_init.php5");
header("Content-type:  application/vnd.ms-excel");
header("Content-disposition : attachement");
?>

<p>Nombre de plat pris dans la semaine </p>
<table border='1'>
<tr>
<td><h5 class="Style2">Nom d'utilisateur </h5></td>
<td><h5 class="Style2">Semaine</h5></td>
<td><h5 class="Style2">Nb de plats</h5></td>
</tr>
<?
$requete_txt = "
SELECT DISTINCT admin_id, menu_semaine, count( menu_jour ) AS Nb_repas
FROM menu_utilisateur
WHERE menu_semaine = '".$_GET['semaine']."'
GROUP BY admin_id
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("</tr>");
	}
?>
</table>

<p>Nombre de plat à 3 Elements </p>
<table border='1'>
<tr>
<td><h5 class="Style2">Nom d'utilisateur </h5></td>
<td><h5 class="Style2">Semaine</h5></td>
<td><h5 class="Style2">Nb de plats 3 Elmts</h5></td>
</tr>
<?
$requete_txt = "
SELECT DISTINCT admin_id, menu_semaine, sum( menu_entree = '' ) AS Nb_repas
FROM menu_utilisateur
WHERE menu_semaine = '".$_GET['semaine']."'
GROUP BY admin_id
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("</tr>");
	}
?>
</table>

<p>Nombre de plat à 5 Elements </p>
<table border='1'>
<tr>
<td><h5 class="Style2">Nom d'utilisateur </h5></td>
<td><h5 class="Style2">Semaine</h5></td>
<td><h5 class="Style2">Nb de plats 5 Elmts</h5></td>
</tr>
<?
$requete_txt = "
SELECT DISTINCT admin_id, menu_semaine, sum( menu_entree <> '' ) AS Nb_repas
FROM menu_utilisateur
WHERE menu_semaine = '".$_GET['semaine']."'
GROUP BY admin_id
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("</tr>");
	}
?>
</table>

par Cyrano » 13 mars 2008, 13:07

Bon ben tu en es juste au début du raisonnement. Dans l'immédiat, ne penses pas en SQL, pense en raisonnement logique :
-1- : Comment sont stockées tes données et donc comment vas-tu pouvoir calculer le nombre de repas pris par une personne ? Si chaque repas est enregistré, c'est dans un endroit particulier avec une manière d'identifier la personne.

-2- Nombre de repas à trois éléments : les données pour définir ça sont stockées où ? Que doit-on identifier par rapport à quel critère ?

etc....

Vas-y un point à la fois, tu regrouperas ensuite, ce sera nettement moins compliqué pour avancer. Fais-toi des croquis représentant tes tables avec les données qu'elles contiennent et raisonne logiquement tout simplement. ;)

par jp.kerloch » 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 :)

par Cyrano » 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 :)

par jp.kerloch » 13 mars 2008, 10:26

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

par lospericos » 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.

par jp.kerloch » 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________

par Cyrano » 13 mars 2008, 09:43

Si c'est résolu, n'oublie pas de marquer le sujet comme tel ;)

par jp.kerloch » 13 mars 2008, 09:42

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

par Cyrano » 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.

par jp.kerloch » 13 mars 2008, 09:39

tableau html mais avec extraction de donnée

par Cyrano » 13 mars 2008, 09:38

Tableaux HTML ou tableaux Excel ?

par jp.kerloch » 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>

par Cyrano » 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.

par spelou » 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 !