IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

La moyenne d'âge d'un parc matériel


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Points : 35
    Points
    35
    Par défaut La moyenne d'âge d'un parc matériel
    Bonjour à tous,
    Je m'en remets une nouvelle fois à vos connaissances pour ce sujet que je n'arrive pas à résoudre.

    Contexte :
    - Table de la Base de données SQL : "parc"
    - Plusieurs type de matériels enregistré colonne "TYPE"
    - Une date de Première mise en circulation sous la forme DateTime "0000-00-00"
    - Une date référence qui évolue sur les 7 dernières années

    Objectifs :
    Je souhaiterai calculer l'évolution de la moyenne d'âge des matériels sur les 7 dernières années par Type de matériel.

    Le code que j'ai édité :
    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
     
    <?php
    for ($k = 0; $k <=6; $k++) {
     
    	$dateRecherche = new DateTime($date_fin); // Date de recherche
    	$dateRecherche->format('Y-m-d'); // Mettre la date au format
    	$annee=$dateRecherche->format('Y'); // Extraire l'année
     
    	$an=$annee-$k; // On extrait une année pour la référence du tableau
     
    	$tabKeyAn[$an]=$an;
     
    	// On va soustraire 1 an à la date
    	$dateRecherche->sub(new DateInterval('P'.$k.'Y'));
    	$dateSelect=$dateRecherche->format('Y-m-d');
     
    	$extractAgeVehicule = $bdd->query("SELECT TYPE, AVG(DATEDIFF(".$dateSelect.",PREMIERE_CIRCULATION)) AS age_moyen FROM `parc` WHERE SESSION_UTILISATEUR='".$_SESSION['session_parc']."' AND PREMIERE_CIRCULATION<='".$dateSelect."' AND (DATE_DECLASSEMENT>='".$dateSelect."' OR DATE_DECLASSEMENT='0000-00-00') GROUP BY TYPE");
    	while ($moyenneAgeExtraitParAn = $extractAgeVehicule->fetch()){
     
                    $type=$moyenneAgeExtraitParAn['TYPE'];
    		$moyenneAge[$an][$type]=$moyenneAgeExtraitParAn['age_moyen'];
    	}
     
    }
     
    var_dump($moyenneAge);
    ?>
    Résultat de la requête :

    array(7) { [2018]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } [2017]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } [2016]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } [2015]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } [2014]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } [2013]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } [2012]=> array(9) { ["BERLINE"]=> NULL ["DIVERS"]=> NULL ["FGON"]=> NULL ["FGTTE"]=> NULL ["P.L."]=> NULL ["SCOOTER"]=> NULL ["SPECIAL"]=> NULL ["TONDEUSE"]=> NULL ["VELO"]=> NULL } }

    Auriez vous une solution ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Points : 35
    Points
    35
    Par défaut Solution pas très académique
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <?php
    	$extractType = $bdd->query("SELECT DISTINCT TYPE FROM `parc` WHERE SESSION_UTILISATEUR='".$_SESSION['session_parc']."'");
     
    	while ($typeVehiculeExtrait = $extractType->fetch()){
     
     
    		$type=$typeVehiculeExtrait['TYPE'];
    		// On définit le tableau des 7 dernières années
    		for ($j = 0; $j <=6; $j++) {
     
    			// Définir le compteur de véhicule par an
    			$compteur=0;
     
    			$dateRecherche = new DateTime($date_fin); // Date de recherche
    			$dateRecherche->format('Y-m-d'); // Mettre la date au format
    			$annee=$dateRecherche->format('Y'); // Extraire l'année
     
    			$an=$annee-$j; // On extrait une année pour la référence du tableau
     
    			$tabKeyAn[$an]=$an;
     
    			// On va soustraire 1 an à la date
    			$dateRecherche->sub(new DateInterval('P'.$j.'Y'));
    			$dateSelect=$dateRecherche->format('Y-m-d');
     
    			$extractVehicule = $bdd->query("SELECT*FROM `parc` WHERE SESSION_UTILISATEUR='".$_SESSION['session_parc']."' AND PREMIERE_CIRCULATION<='".$dateSelect."' AND (DATE_DECLASSEMENT>='".$dateSelect."' OR DATE_DECLASSEMENT='0000-00-00') AND TYPE='".$type."'");
     
     
    			$additionAge =0;
     
     
    			while ($parametresVehiculeExtrait = $extractVehicule->fetch()){
     
     
     
    				// Définir le compteur de véhicule par an
    				$compteur=$compteur+1;
     
    				$pmc=date("Y-m-d", strtotime($parametresVehiculeExtrait['PREMIERE_CIRCULATION']));
    				$anneepmc=date("Y", strtotime($parametresVehiculeExtrait['PREMIERE_CIRCULATION']));
    				$declassement=date("Y-m-d", strtotime($parametresVehiculeExtrait['DATE_DECLASSEMENT']));
    				$anneeDeclassement=date("Y", strtotime($parametresVehiculeExtrait['DATE_DECLASSEMENT']));
    				$suppression=$parametresVehiculeExtrait['SUPPRESSION'];
     
    				$datetime1 = new DateTime($pmc);
    				$datetime2 = new DateTime($dateSelect);
    				$ageVehicule = $datetime1->diff($datetime2);
     
    				$ageVehicule=$ageVehicule->format('%d');
     
    				$additionAge=$ageVehicule+$additionAge;
    			}
     
    			if ($additionAge==0){// Eviter la division par zéro
    				$tabMoyenAgeVehiculeParType[$an][$type]=0;
    			}
    			else{
    				$tabMoyenAgeVehiculeParType[$an][$type]=round(($additionAge/$compteur),2);
    			}
     
    			$nombreVehicule[$an][$type]=$compteur;
     
    		}
     
    		$tabKeyType[$type]=$type;
    	}
     
    	$extractVehicule->closeCursor();
     
    	$extractType->closeCursor();
     
    	var_dump($tabMoyenAgeVehiculeParType);
    ?>

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Points : 35
    Points
    35
    Par défaut Pas de réponse ?
    Bonjour,
    Je suis toujours à la recherche d'une solution.
    Amis développeurs, je compte sur vous.

Discussions similaires

  1. [MLD] Gestion de parc de matériel BTP
    Par zgmaroc dans le forum Schéma
    Réponses: 5
    Dernier message: 15/08/2018, 10h46
  2. [MCD] Projet de gestion d'un parc de matériel informatique
    Par merimac dans le forum Schéma
    Réponses: 15
    Dernier message: 20/12/2013, 10h33
  3. [MCD] parc matériels receptionnes
    Par choukani dans le forum Schéma
    Réponses: 2
    Dernier message: 28/06/2012, 17h17
  4. [Kylix] Développement de pilotes matériels
    Par cmp-france dans le forum EDI
    Réponses: 1
    Dernier message: 26/01/2003, 20h11
  5. Bouquins d'Assembleur - interruptions matérielles
    Par Stef784ever dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 12/11/2002, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo