Bonsoir,
je viens quérir votre aide car je me trouve face à un problème qui me laisse perplexe quant à sa résolution...
Je vous pose l'histoire depuis A jusqu'à Z:
J'ai un site web concernant une entreprise de transport dans lequel sont répertoriées plusieurs tournées saisies par les chauffeurs.
D'après ma BDD, une tournée est caractérisée avec:
Un id "ID"
Un numéro (de tournée) "Numero"
Le nombre de points de livraison "Nb_pt_liv"
Le nombre de ramasses "Pickup"
Le nom du chauffeur "Chauffeur"
La date du jour de la tournée "Date_liv"
Et son email "Email"
Voilà ma table Tournee. Maintenant je souhaiterais afficher dans un tableau à double entrées (En colonne: Numero et en Ligne: Date_liv) les données concernant "Nb_pt_liv" et "Pickup" dans la colonne correspondant à une tournée et sur la ligne correspondant à une date.
Bon comme je suis sûr que ça n'est pas clair pour tout le monde (y compris pour moi ><) et comme une image vaut mille mots, voici une capture:
Donc voici le tableau que je génère avec du code HTML et PHP pour afficher les données de ma BDD dans un tableau. Vous pouvez ici retrouver ce que vous ai dit concernant "Numero" en colonne et "Date_liv' en ligne.
Voici l'algorithme pour remplir le tableau:
On regarde le numéro de tournée, si cette tournée a été enregistré à une date référencée en ligne mettre le nombre de points et de ramasses dans la colonne correspondant au numéro de tournée.
Par exemple, un chauffeur dont la tournée est 155 et la date est 2013-06-05 a rentré 26 points de livraison et 16 ramasses, alors il y aura, à la ligne correspondant à la date 2013-06-05 à la colonne de la tournée 155, 26 pour le champ "Points" et 16 pour celui de "Pickups".
Seulement je n'arrive pas à faire ça. En effet les données sont affichées selon la date mais pas aussi selon le numéro de tournée.
Ce qui fait qu'en reprenant l'exemple précédent, si le chauffeur qui a la tournée 100 n'a rien saisie à la même date que le chauffeur de la tournée 155, et bien les données correspondant à la tournée 155 vont être placées dans la colonne de la tournée 100 (comme représenté dans le tableau dans l'image).
Ce qui veut dire que les données sont saisies à la suite, en partant de la 1er position dans le tableau.
Je vous poste mon code PHP qui réalise le tableau posté en image:
Donc ma question est: Pouvez-vous quant à ce que les données soient placées au bon endroit (bonne ligne et bonne colonne)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $numero = mysql_query('SELECT * FROM tournee_tnt ORDER BY Numero'); ?> <table data-role="table" id="table-custom-2" data-mode="" class="ui-body-d ui-shadow table-stripe ui-responsive"> <tbody> <tr><td></td> <?php while($donnees = mysql_fetch_array($numero)) { ?> <th COLSPAN=2><?php echo $donnees['Numero'];?></th> <?php } ?> <tr><td></td> <?php $nb_tournees="SELECT count(Numero) AS compteur FROM tournee_tnt"; $req_nb_journee=mysql_query($nb_tournees); $tab_nb_journee=mysql_fetch_array($req_nb_journee) ; $i = 0; while($i < $tab_nb_journee["compteur"]) { ?> <td>Points</td><td>Pickups</td> <?php $i++; } ?> </tr> </tr> <?php $date = mysql_query('SELECT DISTINCT Date_liv FROM tournee_tnt ORDER BY `Date_liv`'); while($donnees = mysql_fetch_array($date)) { ?> <tr> <td><?php echo $donnees['Date_liv'];?></td> <?php $date_c = $donnees['Date_liv']; $pt_pick = mysql_query("SELECT Nb_pt_liv, Pickup FROM tournee_tnt WHERE Date_liv ='$date_c' ORDER BY Numero"); while($donnees = mysql_fetch_array($pt_pick)) { ?> <td><?php echo $donnees['Nb_pt_liv'];?></td><td><?php echo $donnees['Pickup'];?></td> <?php } ?> </tr> <?php } ?> </tbody> </table>
Si quelque chose n'est pas clair n'hésitez pas à me le dire. Je me suis peut-être mal exprimé, mais j'ai fait de mon mieux sachant que c'est pas évident de le dire par écrit![]()
Je vous remercie !
PS: Je sais qu'il existe de nombreux sujets similaires à ma requête mais je ne trouve pas de réponse précise à ce que je cherche![]()
Partager