Bonjour à tous !
Je suis sur un projet qui nécéssite de faire une chose assez complexe à mes yeux.
En effet, chaque mois, un fichier contenant des enregistrements est fait. Il est converti en table de base de données:
Cependant, le monde de l'entreprise ne fonctionne pas toujours comme prévu, et il arrive que les fichiers en question soient envoyés avec un autre, mais dans le meme, ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Janvier2010 -> Une table Fevrier2010 -> Une table Mars2010 -> Une table
On ne peut pas prévoir le décalage. Ce que l'on sait, c'est que si une table contient des doublons sur le noms c'est qu'il y a plusieurs facturations dans la meme table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Janvier2010 -> Une table Fevrier2010 -> ??? Mars2010 -> ??? Avril2010 -> Une table ( qui contient les enregistrements de fevrier et mars ) Mai2010 -> Une table Juin2010 -> ??? Etc ...
Le soucis est que j'affiche ces données sur un graphique ( Avec artichow mon bien aimée ) de la manière suivante :
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 Exemple correct : ROBERT Julien RYU Titi Deux facturations ROBERT Julien ROBERT Julien RYU Titi RYU Titi Trois facturations : ROBERT Julien ROBERT Julien ROBERT Julien RYU Titi RYU Titi RYU Titi Etc ...
Les arrays "values" et "values2" sont envoyé à mes graphiques artichow, comportant chacun les sommes des loyers des mois. ( Janvier, fevrier, mars ..., decembre )
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 foreach($selected_year as $selectValue) { echo "<h1>Année $selectValue</h1><br><br>"; // Une boucle qui permet de récuperer les données sur chaque mois de l'année selectionnée for($i;$i<12;$i++) { // On compose le nom de la table dans la BDD avec le mois selectionné $T_factur=$mois[$i].$selectValue; // Calcul du montant de la facture $result = mysql_query("SELECT LOYER FROM ".$T_factur." WHERE CODE_PRODUIT_CATALOGUE LIKE '%bal%' AND LOYER>0"); while ($row = mysql_fetch_object($result)) { $loyer=$row->LOYER; $loyer=str_replace(",",".",$loyer); $loyersum = $loyersum + $loyer; } $values[$i] = $loyersum; $loyersum = 0; $result = mysql_query("SELECT LOYER FROM $T_factur WHERE CODE_PRODUIT_CATALOGUE LIKE '%CLASST%' AND LOYER>0"); while ($row = mysql_fetch_object($result)) { $loyer=$row->LOYER; $loyer=str_replace(",",".",$loyer); $loyersum = $loyersum + $loyer; } $values2[$i] = $loyersum; $loyersum = 0; } }
L'array "mois" contient la liste des mois au format texte
Le nom des tables est composé avec ce mois et l'année selectionnée par l'utilisateur.
Pour simplifier la base, on va dire qu'elle comporte dans chaque table les champs NOM, PRENOM, CODE_PRODUIT_CATALOGUE et LOYER
Avez vous une idée, dans mon cas, de la marche à suivre pour lister les doublons, et suivant leur nombre ( 1, 2 ,3 ou plus ) en décaler un sur le mois d'avant, puis celui d'avant, puis celui d'avant, etc ... ( Un au hasard, les loyers sont les memes à un centime près, et celà ne dérange en rien l'étude statistique si il y a une différence de quelques euros ) ???
Ce traitement doit se faire sans créer de nouvelles tables, et donc uniquement avec des requetes SQL ou des actions en PHP.
NB : Il faut tenir compte du fait qu'une facturation en decembre 2009 peut etre dans la facturation de Fevrier 2010.
Comme d'habitude, je ne demande pas la solution mais une marche à suivre !
Bien cordialement
Partager