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

MkFramework Discussion :

problème de resultat de réquête sql avec jointure


Sujet :

MkFramework

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut problème de resultat de réquête sql avec jointure
    Bonjour, Imikado une fois de plus je me tourne vers vous pour sollicité votre aide, j'ai une requête sql qui fais une jointure entre trois table la reponse quel me renvoie n'est pas correct cal y'a des champ qui se vois être multiplier je comprend pas pourquoi! je vous envoie la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT (MonthName(datesortie)) as periode,Year(datesortie)as annee,count(distinct (evafamille.idevafamille)) as nbrefamille,count(distinct(mensuelafd.idanimateur))as animateur,(sum(evafamille.duresuivie)/ count(evafamille.idevafamille))as dure,(sum(evafamille.progressurdix)/ count(evafamille.idevafamille)) as dix,(sum(evafamille.progressursoicenteneuf)/ count(evafamille.idevafamille))as soicent,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    FROM evafamille inner join mensuelafd
    where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie) Order by Month( datesortie),Year(datesortie)
    j'ai mis en couleur les champs qui sont multiplie par 21 pour d'autre et d'autre par 10.5

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    La c'est plus un problème SQL que lié au framework

    Avez vous essayé de ne faire qu'un count par requete pour veirifier les résultats ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (MonthName(datesortie)) as periode,Year(datesortie)as annee,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    FROM evafamille inner join mensuelafd
    where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie) Order by Month( datesortie),Year(datesortie)
    pour verifier si ce n'est pas les count(distinct(mensuelafd.idanimateur))as animateur qui pose problème
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    j'ai essaie votre proposition mais les résultat ne reflète pas les données réel de ma base j'ai essaie d'autres mais toujours les données sont multiplié
    je vous envoie envoie la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois,count(distinct (evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(evafamille.idevafamille))as dure,(sum(evafamille.progressurdix)/ count(evafamille.idevafamille)) as dix,(sum(evafamille.progressursoicenteneuf)/ count(evafamille.idevafamille))as soicent,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupesortie=niveau1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    FROM mensuelafd inner join evafamille
    where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    es t'il possible d'afficher les resultats de deux requêtes différente sur même page la j'allais proposé de séparer les deux requêtes
    comme tels
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    FROM mensuelafd
    where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Select count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,(sum(evafamille.progressursoicenteneuf)/ count(distinct(evafamille.idevafamille)))as soicent,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    FROM evafamille
    where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)
    dans le cas ou cela serais possible je récupéré les résultats des requêtes et les afficher dans une vue

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui, vous pouvez requeter autant de choses que vous souhaitez puis les afficher dans la même vue
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    j'ai essaie quelque chose mais malhereusement il n'affiche aucune lignes je vous fais voire

    les deux requête fonctionne bien chacune donc je vous fais voire le main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function _evolutiondesresultatparfamille() {
    			 $tEvafamille=null;$tMensuelafd=null;
    			if(_root::getParam('month1') and _root::getParam('month2')){
    			$tEvafamille=model_evafamille::getInstance()->resultat(_root::getParam('month1'),_root::getParam('month2') );
    			$tMensuelafd=model_evafamille::getInstance()->resultat1(_root::getParam('month1'),_root::getParam('month2') );
    			}
    			 $oView=new _view('evafamille::evolutiondesresultatparfamille');
    			 $oView->tEvafamille=$tEvafamille;
    			 $oView->tMensuelafd=$tMensuelafd;
    			$this->oLayout->add('main',$oView);
     
    		}
    ainsi que la vue
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <h1>EVALUATION des familles sorties</h1>
    <table class="table table-striped" border=2>
    <tr>
    	<td rowspan="2" >INDICATEUR</td>
    	<td rowspan="2">Nombre d'accompagnateurs</td>
    	<td rowspan="2">famille suivie au cours de la periode</td>
    	<td rowspan="2">Nombre moyen de famille par animateur au cours de la periode</td>
    	<td rowspan="2">Durée moyenne de l'accompagnement sur les familles sorties analysables</td>
    	<td rowspan="2">Nombre de vad effectuées avec les familles sorties analysables</td>
    	<td rowspan="2">Rappel du nombre familles sorties analysables</td>
    	<td rowspan="2">Nombre moyen de vad par famille sortie analysable</td>
    	<td colspan="6" >Répartition des familles sorties analysables par groupe de vulnerabilité (à l'entrée en AFD)</td>
    	<td rowspan="2">Note moyenne de progrèssion sur 10 pour les familles sorties analysables (selon l'outil photo de famille)</td>
    	<td rowspan="2">réalisés avec les familles sorties analysable</td>
    	<td rowspan="2">Nombre moyen de référencément par familles sortie analysable</td>
    	<td rowspan="2">Nombre de famille sortie analysables qui n'ont été référées vers aucune structure</td>
    	<td rowspan="2">Taux de non référencement des familles sorties analysables</td>
    	<td rowspan="2">Nombre total de structures différentes vers lesquelles les familles sorties analysables ont été référées</td>
    	<td rowspan="2">Nombre total de structures de santé différentes vers lesquelles les familles sorties analysables ont été référées</td>
     
    </tr>
     
    <tr>
    	<td>Groupe 1</td>
    	<td>Groupe 2</td>
    	<td>Groupe 3</td>
    	<td>Groupe 4</td>
    	<td>Groupe 5</td>
    	<td>Groupe 6</td>
    </tr>
     
    <?php if($this->tMensuelafd):?> 
     
    		<?php if($this->tEvafamille):?>
     
    		<?php foreach($this->tMensuelafd as $oMensuelafd):?>
     
    		<?php foreach($this->tEvafamille as $oEvafamille):?>
     
     
    		<tr <?php echo plugin_tpl::alternate(array('','class="alt"'))?>>
     
    		<td> <?php echo $oMensuelafd->periode; echo $oMensuelafd->annee?> </td>
     
    		<td><?php echo $oMensuelafd->animateur ?></td>
     
    		<td><?php echo $oMensuelafd->precedentsuivie+$oMensuelafd->entredumois ?></td>
     
    		<td><?php echo ($oMensuelafd->precedentsuivie+$oMensuelafd->entredumois )/ $oMensuelafd->animateur ?></td>
     
    					<?php if($oEvafamille->periode1 == $oMensuelafd->periode and $oEvafamille->annee1 == $oMensuelafd->annee): ?>
     
    		<td><?php echo $oEvafamille->dure/$oEvafamille->nbrefamille ?> </td>
     
    		<td><?php echo $oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme ?></td>
     
    		<td><?php echo $oEvafamille->nbrefamille ?></td>
     
    		<td><?php echo ($oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme)/$oEvafamille->nbrefamille ?></td>
     
    		<td><?php echo $oEvafamille->niv1 ?></td>
     
    		<td><?php echo $oEvafamille->niv2 ?></td>
     
    		<td><?php echo $oEvafamille->niv3 ?></td>
     
    		<td><?php echo $oEvafamille->niv4 ?></td>
     
    		<td><?php echo $oEvafamille->niv5 ?></td>
     
    		<td><?php echo $oEvafamille->niv6 ?></td>
     
    		<td><?php echo $oEvafamille->dix ?></td>
     
    		<td><?php echo $oEvafamille->ref ?></td>
     
    		<td><?php echo $oEvafamille->ref/$oEvafamille->nbrefamille ?></td>
     
    		<td></td>
    		<td></td>
     
    		<td><?php echo $oEvafamille->structdif ?></td>
     
    		<td></td>
     
    		<?php endif;?>
     
    	</tr>	
    		<?php endforeach;?>
    		<?php endforeach;?>
    	<?php else:?>
    		<tr>
    			<td colspan="83">Aucune ligne</td>
    		</tr>
    	<?php endif;?>
    	<?php endif;?>
    </table>
    merci de m'aider a trouvé ce qui vas pas

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Pourquoi mettre deux foreach de suite ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach($this->tMensuelafd as $oMensuelafd):?>
     
    		<?php foreach($this->tEvafamille as $oEvafamille):?>
    que retournez vous exactement ?
    plusieurs ligne: une par année/mois, c'est bien cela ?

    Vous pouvez regrouper vos multi requetes dans la méthode model
    Code php : 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
     
     
     
    public function resultat($month1,$month2){
     
    	$tRequete1=$this->findManySimple('Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    	FROM mensuelafd
    	where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    	');
     
    	$tRequete2=$this->findManySimple('SELECT (MonthName(datedubilan)) as periode,Year(datedubilan)as annee, count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,(sum(evafamille.progressursoicenteneuf)/ count(distinct(evafamille.idevafamille)))as soicent,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    	FROM evafamille
    	where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)');
     
    	$tResult=array();
    	foreach($tRequete1 as $oRequete){
    		$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    	}
    	$tColumnRequete2=array('nbrefamille','dure','dix');//toutes les colonnes de la requete 2
    	foreach($tRequete2 as $oRequete){
    		foreach($tColumnRequete2 as $sColumn){
    			$tResult[$oRequete->periode.'-'.$oRequete->annee]->$sColumn=$oRequete->$sColumn;
    		}
    	}
     
    	return $tResult;
     
    }
    Dans l'idée vous faites un seul appel mode, dans celui-ci vous composez le tableau de retour puis vous renvoyez le tout
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    j'ai essaie ce que vous m'avez envoie il me renvoie

    Undefined property: stdClass::$periode
    #0 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\model\model_evafamille.php(127): exception_error_handler(8, 'Undefined prope...', 'C:\wamp\www\mkf...', 127, Array)
    #1 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\module\evafamille\main.php(165): model_evafamille->resultat('2015-01-01', '2015-07-31')
    #2 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\module\evafamille\main.php(126): module_evafamille->_evolutiondesresultatparfamille()
    #3 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_root.php(263): module_evafamille->_bilan()
    #4 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\public\index.php(47): _root->run()
    #5 {main}
    je ne comprend pas trop j'avoue mais pour vous aidez aà mieu comprendre je vous renvoie ce que j'ai mis dans le model
    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
    public function resultat($month1,$month2){
     
    	$tRequete1=$this->findManySimple("Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    	FROM mensuelafd
    	where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    	");
     
    	$tRequete2=$this->findManySimple("SELECT (MonthName(datesortie)) as periode1,Year(datesortie)as annee1, count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    	FROM evafamille
    	where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)");
     
    	$tResult=array();
    	foreach($tRequete1 as $oRequete){
    		$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    	}
    	$tColumnRequete2=array('periode1','annee1','nbrefamille','dure','dix','valide','mari','ferme','structdif','ref','niv1','niv2','niv3','niv4','niv5','niv6');//toutes les colonnes de la requete 2
    	foreach($tRequete2 as $oRequete){
    		foreach($tColumnRequete2 as $sColumn){
    			$tResult[$oRequete->periode.'-'.$oRequete->annee]->$sColumn=$oRequete->$sColumn;
    		}
    	}
     
    	return $tResult;
     
    }
    dans le main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function _evolutiondesresultatparfamille() {
    			 $tEvafamille=null;
    			if(_root::getParam('month1') and _root::getParam('month2')){
    			$tEvafamille=model_evafamille::getInstance()->resultat(_root::getParam('month1'),_root::getParam('month2') );
    			}
    			 $oView=new _view('evafamille::evolutiondesresultatparfamille');
    			 $oView->tEvafamille=$tEvafamille;
    			$this->oLayout->add('main',$oView);
     
    		}
    et enfin dans la vue

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <h1>EVALUATION des familles sorties</h1>
    <table class="table table-striped" border=2>
    <tr>
    	<td rowspan="2" >INDICATEUR</td>
    	<td rowspan="2">Nombre d'accompagnateurs</td>
    	<td rowspan="2">famille suivie au cours de la periode</td>
    	<td rowspan="2">Nombre moyen de famille par animateur au cours de la periode</td>
    	<td rowspan="2">Durée moyenne de l'accompagnement sur les familles sorties analysables</td>
    	<td rowspan="2">Nombre de vad effectuées avec les familles sorties analysables</td>
    	<td rowspan="2">Rappel du nombre familles sorties analysables</td>
    	<td rowspan="2">Nombre moyen de vad par famille sortie analysable</td>
    	<td colspan="6" >Répartition des familles sorties analysables par groupe de vulnerabilité (à l'entrée en AFD)</td>
    	<td rowspan="2">Note moyenne de progrèssion sur 10 pour les familles sorties analysables (selon l'outil photo de famille)</td>
    	<td rowspan="2">réalisés avec les familles sorties analysable</td>
    	<td rowspan="2">Nombre moyen de référencément par familles sortie analysable</td>
    	<td rowspan="2">Nombre de famille sortie analysables qui n'ont été référées vers aucune structure</td>
    	<td rowspan="2">Taux de non référencement des familles sorties analysables</td>
    	<td rowspan="2">Nombre total de structures différentes vers lesquelles les familles sorties analysables ont été référées</td>
    	<td rowspan="2">Nombre total de structures de santé différentes vers lesquelles les familles sorties analysables ont été référées</td>
     
    </tr>
     
    <tr>
    	<td>Groupe 1</td>
    	<td>Groupe 2</td>
    	<td>Groupe 3</td>
    	<td>Groupe 4</td>
    	<td>Groupe 5</td>
    	<td>Groupe 6</td>
    </tr>
    		<?php if($this->tEvafamille):?>
     
    		<?php foreach($this->tEvafamille as $oEvafamille):?>
     
     
    		<tr <?php echo plugin_tpl::alternate(array('','class="alt"'))?>>
     
    		<td> <?php echo $oEvafamille->periode; echo $oEvafamille->annee?> </td>
     
    		<td><?php echo $oEvafamille->animateur ?></td>
     
    		<td><?php echo $oEvafamille->precedentsuivie+$oEvafamille->entredumois ?></td>
     
    		<td><?php echo ($oEvafamille->precedentsuivie+$oEvafamille->entredumois )/ $oEvafamille->animateur ?></td>
     
    					<?php if($oEvafamille->periode1 == $oEvafamille->periode and $oEvafamille->annee1 == $oEvafamille->annee): ?>
     
    		<td><?php echo $oEvafamille->dure/$oEvafamille->nbrefamille ?> </td>
     
    		<td><?php echo $oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme ?></td>
     
    		<td><?php echo $oEvafamille->nbrefamille ?></td>
     
    		<td><?php echo ($oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme)/$oEvafamille->nbrefamille ?></td>
     
    		<td><?php echo $oEvafamille->niv1 ?></td>
     
    		<td><?php echo $oEvafamille->niv2 ?></td>
     
    		<td><?php echo $oEvafamille->niv3 ?></td>
     
    		<td><?php echo $oEvafamille->niv4 ?></td>
     
    		<td><?php echo $oEvafamille->niv5 ?></td>
     
    		<td><?php echo $oEvafamille->niv6 ?></td>
     
    		<td><?php echo $oEvafamille->dix ?></td>
     
    		<td><?php echo $oEvafamille->ref ?></td>
     
    		<td><?php echo $oEvafamille->ref/$oEvafamille->nbrefamille ?></td>
     
    		<td></td>
    		<td></td>
     
    		<td><?php echo $oEvafamille->structdif ?></td>
     
    		<td></td>
     
    		<?php endif;?>
     
    	</tr>	
    		<?php endforeach;?>
    	<?php else:?>
    		<tr>
    			<td colspan="83">Aucune ligne</td>
    		</tr>
    	<?php endif;?>
    </table>

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    j'ai l'impression que le problème réside dans la récupérations du résultat de la deuxième requête!
    mais je ne vois pas comment je peux régler cela!
    Dans l'idée vous faites un seul appel mode, dans celui-ci vous composez le tableau de retour puis vous renvoyez le tout


  9. #9
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Il y a une erreur dans votre méthode model
    C'est plutot:
    Code php : 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
     
    public function resultat($month1,$month2){
     
    	$tRequete1=$this->findManySimple("Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    	FROM mensuelafd
    	where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    	");
     
    	$tRequete2=$this->findManySimple("SELECT (MonthName(datesortie)) as periode1,Year(datesortie)as annee1, count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    	FROM evafamille
    	where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)");
     
    	$tResult=array();
    	foreach($tRequete1 as $oRequete){
    		$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    	}
    	$tColumnRequete2=array('periode1','annee1','nbrefamille','dure','dix','valide','mari','ferme','structdif','ref','niv1','niv2','niv3','niv4','niv5','niv6');//toutes les colonnes de la requete 2
    	foreach($tRequete2 as $oRequete){
    		foreach($tColumnRequete2 as $sColumn){
    			//ici l'erreur: periode1 et annee1 vu que dans votre requete vous avez mis periode1 et annee1
    			$tResult[$oRequete->periode1.'-'.$oRequete->annee1]->$sColumn=$oRequete->$sColumn;
    		}
    	}
     
    	return $tResult;
     
    }
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    merci j'avais déjà vue ce problème mais comme je vous l'ai fais comprendre dans mon dernier message le problème reside dans la récupération des résultat de la requête deux j'ai essaie voici ce qui me renvoie
    Undefined property: stdClass::$dure
    #0 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\module\evafamille\view\evolutiondesresultatparfamille.php(67): exception_error_handler(8, 'Undefined prope...', 'C:\wamp\www\mkf...', 67, Array)
    #1 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_view.php(85): include('C:\wamp\www\mkf...')
    #2 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_layout.php(158): _view->show()
    #3 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\layout\bootstrap.php(40): _layout->load('main')
    #4 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_layout.php(122): include('C:\wamp\www\mkf...')
    #5 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\module\evafamille\main.php(277): _layout->show()
    #6 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_root.php(275): module_evafamille->after()
    #7 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\public\index.php(47): _root->run()
    #8 {main}
    alors qui est bien calculé merci de bien vouloir éclairer ma lanterne sur ce sujet merci

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    a cela j'ajoute la fonction dans le main et la vue!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function _evolutiondesresultatparfamille() {
    			 $tEvafamille=null;
    			if(_root::getParam('month1') and _root::getParam('month2')){
    			$tEvafamille=model_evafamille::getInstance()->resultat(_root::getParam('month1'),_root::getParam('month2') );
    			}
    			 $oView=new _view('evafamille::evolutiondesresultatparfamille');
    			 $oView->tEvafamille=$tEvafamille;
    			$this->oLayout->add('main',$oView);
     
    		}
    et la vue

    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
    75
    76
    77
    78
    79
    		<?php if($this->tEvafamille):
    		$numero=null ;
    	$numero1=null ;
    	$numero2=null ;
    	$numero3=null ;
    	 $numero4=null ;
    	 $numero5=null;
    	 $numero6=null;
    	$numero7=null;
    	$numero8=null ;
    	$numero9=null ;
    	$numero10=null ;
    		$numero11=null ;
    	$numero12=null ;
    	$numero13=null ;
    	 $numero14=null ;
    	 $numero15=null;
    	 $numero16=null;
    	$numero17=null;
    	$numero18=null ;
    	$numero19=null;
    		?>
     
    		<?php foreach($this->tEvafamille as $oEvafamille):?>
     
     
    		<tr <?php echo plugin_tpl::alternate(array('','class="alt"'))?>>
     
    		<td> <?php echo $oEvafamille->periode; echo $oEvafamille->annee;$numero=$numero+1?> </td>
     
    		<td><?php echo $oEvafamille->animateur;$numero1=$numero1+$oEvafamille->animateur ?></td>
     
    		<td><?php echo $oEvafamille->precedentsuivie+$oEvafamille->entredumois ?></td>
    		<?php if($numero == 1){$numero2=$oEvafamille->precedentsuivie;}?>
    		<td><?php echo ($oEvafamille->precedentsuivie+$oEvafamille->entredumois)/ $oEvafamille->animateur ;$numero3=$numero3+(($oEvafamille->precedentsuivie+$oEvafamille->entredumois )/ $oEvafamille->animateur);$numero8=$numero8+$oEvafamille->entredumois?></td>
     
    		<td><?php echo $oEvafamille->dure /$oEvafamille->nbrefamille;
    		$numero5=$numero5+($oEvafamille->dure/$oEvafamille->nbrefamille);$numero4=$numero4+1?> </td>
     
    		<td><?php echo $oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme;$numero6=$numero6+$oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme ?></td>
     
    		<td><?php echo $oEvafamille->nbrefamille;$numero7=$numero7+$oEvafamille->nbrefamille ?></td>
     
    		<td><?php echo (($oEvafamille->valide+$oEvafamille->mari+$oEvafamille->ferme)/$oEvafamille->nbrefamille) ?></td>
     
    		<td><?php echo $oEvafamille->niv1;$numero9=$numero9+$oEvafamille->niv1 ?></td>
     
    		<td><?php echo $oEvafamille->niv2;$numero10=$numero10+$oEvafamille->niv2 ?></td>
     
    		<td><?php echo $oEvafamille->niv3;$numero11=$numero11+$oEvafamille->niv3 ?></td>
     
    		<td><?php echo $oEvafamille->niv4;$numero12=$numero12+$oEvafamille->niv4 ?></td>
     
    		<td><?php echo $oEvafamille->niv5;$numero13=$numero13+$oEvafamille->niv5 ?></td>
     
    		<td><?php echo $oEvafamille->niv6;$numero14=$numero14+$oEvafamille->niv6 ?></td>
     
    		<td><?php echo $oEvafamille->dix;$numero15=$numero15+$oEvafamille->dix ?></td>
     
    		<td><?php echo $oEvafamille->ref;$numero16=$numero16+$oEvafamille->ref ?></td>
     
    		<td><?php echo $oEvafamille->ref/$oEvafamille->nbrefamille ?></td>
     
    		<td></td>
    		<td></td>
     
    		<td><?php echo $oEvafamille->structdif;$numero18=$numero18+$oEvafamille->structdif ?></td>
     
    		<td></td>
     
    	</tr>	
    		<?php endforeach;?>
     
    	<?php else:?>
    		<tr>
    			<td colspan="83">Aucune ligne</td>
    		</tr>
    	<?php endif;?>
    </table>

  12. #12
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Voila ce qui a marché chez moi:
    Dans la couche modèle model_evafamille:
    Code php : 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
     
    public function resultat($month1,$month2){
     
    		$tRequete1=$this->findManySimple("Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    		FROM mensuelafd
    		where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    		");
     
    		$tRequete2=$this->findManySimple("SELECT (MonthName(datesortie)) as periode,Year(datesortie)as annee, count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    		FROM evafamille
    		where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)");
     
    		$tResult=array();
    		foreach($tRequete1 as $oRequete){
    			$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    		}
    		$tColumnRequete2=array('periode','annee','nbrefamille','dure','dix','valide','mari','ferme','structdif','ref','niv1','niv2','niv3','niv4','niv5','niv6');//toutes les colonnes de la requete 2
    		foreach($tRequete2 as $oRequete){
    			foreach($tColumnRequete2 as $sColumn){
    				//ici l'erreur: periode1 et annee1 vu que dans votre requete vous avez mis periode1 et annee1
     
    				$tResult[$oRequete->periode.'-'.$oRequete->annee]->$sColumn=$oRequete->$sColumn;
    			}
    		}
     
    		return $tResult;
     
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    ok! merci pour m'avoir accordé votre temps malheureusement chez mois il ne marche pas!

  14. #14
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    De rien

    Mais quel message avez-vous ?

    Car la avec cet exemple (notez que j'ai changé les periode1 et annee1 en periode et annee)

    Une chose qui peut poser soucis: quand dans une des requêtes il ne retourne pas d'enregistrement, là il peut y avoir un soucis
    Je pense qu'il faut mettre un spy sur les deux requetes:

    Code php : 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
     
     
    public function resultat($month1,$month2){
     
    		$tRequete1=$this->findManySimple("Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    		FROM mensuelafd
    		where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    		");
     
    plugin_debug::addSpy('requete1',$tRequete1);
     
    		$tRequete2=$this->findManySimple("SELECT (MonthName(datesortie)) as periode,Year(datesortie)as annee, count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    		FROM evafamille
    		where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)");
     
     
     
    plugin_debug::addSpy('requete2',$tRequete2);
     
     
    		$tResult=array();
    		foreach($tRequete1 as $oRequete){
    			$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    		}
    		$tColumnRequete2=array('periode','annee','nbrefamille','dure','dix','valide','mari','ferme','structdif','ref','niv1','niv2','niv3','niv4','niv5','niv6');//toutes les colonnes de la requete 2
    		foreach($tRequete2 as $oRequete){
    			foreach($tColumnRequete2 as $sColumn){
    				//ici l'erreur: periode1 et annee1 vu que dans votre requete vous avez mis periode1 et annee1
     
    				$tResult[$oRequete->periode.'-'.$oRequete->annee]->$sColumn=$oRequete->$sColumn;
    			}
    		}
     
    plugin_debug::addSpy('result',$tResult);
     
     
    		return $tResult;
     
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    le message que sa affiche me montre que la variable dure de la requête deux n'est pas définis! j'ai mis periode1 et annee1 la requête deux car dans la requête un j'ai deja periode et annee, je vous envoie juste une copie du message
    Undefined property: stdClass::$dure
    #0 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\module\evafamille\view\evolutiondesresultatparfamille.php(67): exception_error_handler(8, 'Undefined prope...', 'C:\wamp\www\mkf...', 67, Array)
    #1 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_view.php(85): include('C:\wamp\www\mkf...')
    #2 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_layout.php(158): _view->show()
    #3 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\layout\bootstrap.php(40): _layout->load('main')
    #4 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_layout.php(122): include('C:\wamp\www\mkf...')
    #5 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\module\evafamille\main.php(281): _layout->show()
    #6 C:\wamp\www\mkframework_v4_117_0_r286\lib\framework\class_root.php(275): module_evafamille->after()
    #7 C:\wamp\www\mkframework_v4_117_0_r286\data\genere\Accompagnement familial\public\index.php(47): _root->run()
    #8 {main}

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    dans les détails je constate que l’exécution de la requête un se fais pour le premier mois qui est janvier alors que dans la requête deux il n’y a pas pas d'information pour le mois de janvier. ce n'es que a partir du mois de mais qu'il y'a des informations dans la requête deux. es ce que ceci aussi ne pose pas de problème

  17. #17
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui c'est ceci qui pose problème

    En premier on rempli avec le resultat de la première requete, puis on boucle sur la seconde requete pour enrichir les resultats
    d'ou les soucis

    Si une des deux requetes est "optionnels" il faut voir
    1. pour ne pas prendre l'enregistrement si une des deux requetes ne retourne pas d'enregistreement pour le mois concerné
    2. mettre des valeurs "par défaut" pour le cas ou une des requetes ne retourne pas la valeur (dans la vue) avec un if(isset($oRow->leChamp
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    merci votre vision est juste mais j'avoue être bleue dans cette phrase
    . mettre des valeurs "par défaut" pour le cas ou une des requetes ne retourne pas la valeur (dans la vue) avec un if(isset($oRow->leChamp
    si je peut avoir un exemple je serais très content

  19. #19
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Et avec cet exemple:

    Code php : 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
     
     
     
    public function resultat($month1,$month2){
     
    		$tRequete1=$this->findManySimple("Select (MonthName(datedubilan)) as periode,Year(datedubilan)as annee,count(distinct(mensuelafd.idanimateur))as animateur,sum(mensuelafd.precedentsuivie) as precedentsuivie,sum(mensuelafd.entredumois) as entredumois
    		FROM mensuelafd
    		where (mensuelafd.datedubilan >= {D '$month1'} AND mensuelafd.datedubilan <= {D '$month2'}) GROUP BY Month(datedubilan),Year(datedubilan)Order by Month(datedubilan),Year(datedubilan)
    		");
     
    plugin_debug::addSpy('requete1',$tRequete1);
     
    		$tRequete2=$this->findManySimple("SELECT (MonthName(datesortie)) as periode,Year(datesortie)as annee, count(distinct(evafamille.idevafamille)) as nbrefamille,(sum(evafamille.duresuivie)/ count(distinct(evafamille.idevafamille)))as dure,(sum(evafamille.progressurdix)/ count(distinct(evafamille.idevafamille))) as dix,sum(evafamille.vadvalide) as valide,sum(evafamille.vadmarirencontrer) as mari,sum(evafamille.vadferme) as ferme,sum(evafamille.nombredestructuresversfamille) as structdif,sum(evafamille.totalreferencements) as ref,sum(evafamille.groupe1) as niv1, sum(evafamille.groupe1) as niv2, sum(evafamille.groupe3) as niv3, sum(evafamille.groupe4) as niv4, sum(evafamille.groupe5) as niv5, sum(evafamille.groupe6) as niv6
    		FROM evafamille
    		where (evafamille.datesortie >= {D '$month1'} AND evafamille.datesortie <= {D '$month2'}) GROUP BY Month( datesortie),Year(datesortie)Order by Month( datesortie),Year(datesortie)");
     
     
     
    plugin_debug::addSpy('requete2',$tRequete2);
     
     
    		$tResult=array();
    		foreach($tRequete1 as $oRequete){
    			$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    		}
    		$tColumnRequete2=array('periode','annee','nbrefamille','dure','dix','valide','mari','ferme','structdif','ref','niv1','niv2','niv3','niv4','niv5','niv6');//toutes les colonnes de la requete 2
    		foreach($tRequete2 as $oRequete){
    			//check requete1
    			if(!isset($tResult[$oRequete->periode.'-'.$oRequete->annee])){
    				//ici on defini les valeurs par defaut de la requete 1 (si pas de ligne)
    				$oRequete->animateur=null;
    				//colonnes suivantes
     
    				$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    			}
    			foreach($tColumnRequete2 as $sColumn){ 
    				$tResult[$oRequete->periode.'-'.$oRequete->annee]->$sColumn=$oRequete->$sColumn;
    			}
    		}
    		//check requete 2
    		foreach($tRequete1 as $oRequete){
    			//check requete 2
    			if(!isset($tResult[$oRequete->periode.'-'.$oRequete->annee]->nbrefamille)){
    				//ici on defini les valeurs par defaut de la requete 2 (si pas de ligne)
    				$oRequete->nbrefamille=null;
    				//colonnes suivantes
     
    				$tResult[$oRequete->periode.'-'.$oRequete->annee]=$oRequete;
    			}
    		}
     
     
    plugin_debug::addSpy('result',$tResult);
     
     
    		return $tResult;
     
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Août 2014
    Messages : 62
    Points : 28
    Points
    28
    Par défaut
    une fois de plus je vous exprime toute ma gratitude pour votre aide à la résolution de se problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème requête SQL avec jointure
    Par dorianb dans le forum Langage SQL
    Réponses: 8
    Dernier message: 12/05/2014, 11h13
  2. Réponses: 4
    Dernier message: 02/03/2009, 11h46
  3. Requete SQL avec jointure sur trois tables
    Par pit2121 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/05/2008, 23h07
  4. Requête SQL avec jointure sur trois tables
    Par pit2121 dans le forum SQL
    Réponses: 0
    Dernier message: 19/05/2008, 20h24
  5. Requete SQL avec jointure multiple
    Par kissskoool dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/01/2008, 01h07

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