Tableau PHP

  • Auteur de la discussion Auteur de la discussion ghost69
  • Date de début Date de début
Nouveau WRInaute
Bonsoir à tous,

Voilà j'ai un soucis. Je fais une simulation d'employé dans une entreprise. Chaque jour cette employé à une certaine production et ceci s'enregistre de la façon suivante dans la table travail de ma base de donnée :

Id_employe Id_employeur production_jour date_production

Chaque jour une nouvelle occurrence est ajoutée et seule la date change. Maintenant j'aimerai afficher dans un tableau la productivité de l'employé avec le détail de chaque jour.

Voilà ma requête :
Code:
SELECT * FROM travail WHERE id_employeur = "'.$identre.'" AND date_production BETWEEN "'.$jour1.'" AND "'.$jour5.'" ORDER BY date_production

Et le tableau :

Code:
	<h3>Détail Productivité des employés sur les 5 derniers jours</h3>
		
	<table>
		<tr>
			<th>Employé</th>
			<th>Jour 1</th>
			<th>Jour 2</th>
			<th>Jour 3</th>
			<th>Jour 4</th>
			<th>Jour 5</th>
		</tr>

	
<?php
		//On créé la variables jour et jour5
		$jour5 = date("Y-m-d");
		$jour1 = date("Ymd",mktime(0,0,0,date("m"),date("d")-5,date("Y")));
		

		// On sélectionne les employés de l'entreprise en question
		$lire_liste = 'SELECT * FROM travail WHERE id_employeur = "'.$identre.'" AND date_production BETWEEN "'.$jour1.'" AND "'.$jour5.'" ORDER BY date_production';
		
		//id_employe 	id_employeur 	production_jour 	date_production 
		$faire_liste = mysql_query($lire_liste);
		
		// On liste dans le tableau.
		while ($liste = mysql_fetch_array($faire_liste)) 
		{
			//Récupère le pseudo avec l'id
			$pseudo_empl = mysql_query('SELECT pseudo FROM membre WHERE id = "'.$liste['id_employe'].'"') or die(mysql_error());
			while ($recpseudo = mysql_fetch_array($pseudo_empl))
			{
				$lepseudo_empl = $recpseudo['pseudo'];
			}
	
?>			
			<tr>
			<td><?php echo $lepseudo_empl; ?></td>
			<td><?php echo stripslashes($liste['id_employeur']); ?></td>
			<td><?php echo stripslashes($liste['production_jour']); ?></td>
			<td><?php echo stripslashes($liste['date_production']); ?></td>
			</tr>
<?php
		}
		

?>
	</table>

Donc jusque là tout ce passe bien j'ai bien sauf que dans mon tableau j'ai une ligne pour chaque jour, or comme vous le voyez leur de la déclaration de mon tableau HTML, je désire une ligne par employé avec dans la même ligne les 5 jours de travail.

Comment faire ?

Merci d'avance !
 
Nouveau WRInaute
En gros dans mon While je met un autre while qui génère la date du jour 2 puis un autre avec la date du jour 3 etc... jusqu'au jour 5 c'est ça ? Et puis quand mes 100 membres se connecte le site explose ? lool
 
WRInaute accro
Dans ton while, tu stockes les informations dans un tableau de tableaux:

while (...)
{
$production[$liste['id_employeur']][$liste['date_production']] = $liste['production_jour'];
}

Ensuite, tu fais deux boucles imbriquées, l'une sur le premier niveau du tableau (les employés), puis sur le deuxième niveau (les dates). Evidemment il va falloir gérer le cas où tous les employés n'ont pas travaillé tous les jours.

Jacques.
 
WRInaute accro
Non ce n'est pas une imbrication de while. Ce sont des select mysql, pas du php.

Le lien que je t'ai donné est un peu trapu, et en anglais, mais avec un crayon et un papier ça marche assez bien ^^
Et ça gère parfaitement les cas où les employés n'ont pas travaillé un jour donné.
 
WRInaute impliqué
oui mais on se retrouve avec des requêtes qui consomme pas mal et un site avec un temps de réponse énorme non ?
 
Nouveau WRInaute
Marie-Aude a dit:
Non ce n'est pas une imbrication de while. Ce sont des select mysql, pas du php.

Le lien que je t'ai donné est un peu trapu, et en anglais, mais avec un crayon et un papier ça marche assez bien ^^
Et ça gère parfaitement les cas où les employés n'ont pas travaillé un jour donné.

Ouais mais pour extraire un résultat un while ou extract est quasi indispensable ^^
Et je ne sais pas si tu as vu comment je gère mon tableau mais ça peut vite être galère pour gérer plusieurs membres ^^

En gros une requête pour chaque jour de travail ?
 
Nouveau WRInaute
Normalement m'a table est correctement indexé ^^
Bon ben merci à tous et je reviens si ya des soucis !
 
Discussions similaires
Haut