if($variables==?.?){
$variables=?,?
}
if (is_numeric ( $variable )) { // si tu traites un nombre
$variable = str_replace(".", ",", $variable); // remplace tous les points par des virgules.
}
sinon dans ta requête sql, ce pourrait être de même un replace() du point par une virgule directement sur ta colonne sommée :Code : Tout sélectionner
SELECT REPLACE( SUM(taColonne), '.', ',' ) ... FROM ...Code : Tout sélectionner
SELECT parnom, parprenom,
SUM(CASE WHEN regjour < dosdatef70bis
THEN regheure
WHEN cotypecontrat = '' AND dosf70bis='non'
THEN regheure
WHEN cotypecontrat = '' AND dosf70bis=''
THEN regheure
ELSE 0
END) AS Heures_Alpha,
SUM(CASE WHEN regjour >= dosdatef70bis AND cotypecontrat ='F70 BISLE'
THEN regheure
ELSE 0
END) AS F70BIS_LE,
SUM(CASE WHEN regjour >= dosdatef70bis AND cotypecontrat ='F70 BISAlpha'
THEN regheure
ELSE 0
END) AS F70BIS_Alpha,
SUM(CASE WHEN regjour >= dosdatef70bis AND cotypecontrat =''
THEN regheure
ELSE 0
END) AS F70BIS_oups,
SUM(CASE WHEN cotypecontrat ='Permis cpas'
THEN regheure
ELSE 0
END) AS Permis_cpas,
SUM(CASE WHEN cotypecontrat ='Article 60'
THEN regheure
ELSE 0
END) AS Article_60,
SUM(CASE WHEN cotypecontrat ='Eft'
THEN regheure
ELSE 0
END) AS EFT,
SUM(CASE WHEN cotypecontrat ='Conge education'
THEN regheure
ELSE 0
END) AS Conge_educ,
SUM(regheure) AS Total
FROM participant p INNER JOIN registre r ON p.idparticipant = r.idparticipant
LEFT JOIN dossier d ON p.idparticipant = d.idparticipant
LEFT JOIN contrat c ON p.idparticipant = c.idparticipant
WHERE regjour BETWEEN '".$date->explode($_POST[DateRecherche])."' AND '".$date->explode($_POST[DateIntervale])."'
$Nomformateur
$NomParticipant
GROUP BY parnom, parprenom
ORDER BY parnom ASC");
while($soluce = pg_fetch_object($resu))
{
$fichier->Insertion("$soluce->parnom;$soluce->parprenom;$soluce->heures_alpha;$soluce->f70bis_le;$soluce->f70bis_alpha;$soluce->f70bis_oups;$soluce->permis_cpas;$soluce->article_60;$soluce->eft;$soluce->conge_educ;$soluce->total");
/**
* Insertion des données dans la table temporaire
* grâce a la boucle while
*/
$InsertTmp = pg_query("INSERT INTO temptable
(heures_alpha ,f70bis_le ,f70bis_alpha ,f70bis_oups,permis_cpas, article_60, eft, conge_educ,totaltotal)
VALUES ('$soluce->heures_alpha','$soluce->f70bis_le','$soluce->f70bis_alpha','$soluce->f70bis_oups','$soluce->permis_cpas','$soluce->article_60','$soluce->eft','$soluce->conge_educ','$soluce->total')");
}
A ton avis quel sera la solution la plus perfomante.
while($soluce = pg_fetch_object($resu)) {
$fichier->Insertion("$soluce->parnom;$soluce->parprenom"
. ";" . str_replace('.', ',', $soluce->heures_alpha)
. ";" . str_replace('.', ',', $soluce->f70bis_le)
. ";" . str_replace('.', ',', $soluce->f70bis_alpha)
. ";" . str_replace('.', ',', $soluce->f70bis_oups)
. ";" . str_replace('.', ',', $soluce->permis_cpas)
. ";" . str_replace('.', ',', $soluce->article_60)
. ";" . str_replace('.', ',', $soluce->eft)
. ";" . str_replace('.', ',', $soluce->conge_educ)
. ";" . str_replace('.', ',', $soluce->total)
);
...$CreateTmp = "CREATE TEMP TABLE temptable
(heures_alpha float4,f70bis_le float4,f70bis_alpha float4,f70bis_oups float4,permis_cpas float4, article_60 float4,eft float4, conge_educ float4,totaltotal float4)";
pg_query($CreateTmp);
Or le float et le int ne reconnaisent pas le nombre avec virgule. une petite idée peut-être merci