Tableau PHP
9 messages
• Page 1 sur 1
- ghost69
- Nouveau WRInaute

- Messages: 4
- Inscription: 2 Avr 2010
Tableau PHP
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 :
Et le tableau :
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 !
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: Tout sélectionner
SELECT * FROM travail WHERE id_employeur = "'.$identre.'" AND date_production BETWEEN "'.$jour1.'" AND "'.$jour5.'" ORDER BY date_production
Et le tableau :
- Code: Tout sélectionner
<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 !
-

Marie-Aude - Modérateur

- Messages: 11901
- Inscription: 5 Juin 2006
Re: Tableau PHP
Les requetes "analyse croisées" n'existent pas en natif en mysql. Il faut passer par une première requete, qui trouve les noms de colonnes de la table, et qui va générer une chaine de texte à insérer dans la deuxieme requete
http://dev.mysql.com/tech-resources/articles/wizard/print_version.html
http://dev.mysql.com/tech-resources/articles/wizard/print_version.html
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Tableau PHP
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.
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.
-

Marie-Aude - Modérateur

- Messages: 11901
- Inscription: 5 Juin 2006
Re: Tableau PHP
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é.
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é.
- ghost69
- Nouveau WRInaute

- Messages: 4
- Inscription: 2 Avr 2010
Re: Tableau PHP
Marie-Aude a écrit: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 ?
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- PHP: Mélanger un tableau de tableau de manière aléatoire
- Trier un tableau en PHP
- Erreur en PHP : tableau
- PHP-Trier un tableau
- Problème de tableau en PHP
- [php] Résultat de calcul et tableau
- [PHP] Réordonner un tableau [RESOLU]
- je seche en php sur un tableau
- Tableau et requete php/mysql
- PHP problème d'affichage tableau
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité



