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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Janvier2010 -> Une table
Fevrier2010 -> Une table
Mars2010 -> Une table
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
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 ...
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
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 ...
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
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;
          }      
        }
Les arrays "values" et "values2" sont envoyé à mes graphiques artichow, comportant chacun les sommes des loyers des mois. ( Janvier, fevrier, mars ..., decembre )

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