J'ai un problème avec une requête, celle-ci fonctionne en local sous un environnement windows, mais ne fonctionne pas sur le serveur qui héberge mon site (qui est en linux).
Voici la requette :
Code : Tout sélectionner
//CREER LA CONNEXION A LA BASE
require_once ("connexion.php");
global $conn;
//Creation d'une image du tableau que j'obtiens dans mon script
$tab5[] =array(
array(
"dateduj"=>"2010-09-01",
"Num_Contrat_FM"=>"8",
"Num_Produit"=>"57",
"Id_Ets"=>"6"),
array(
"dateduj"=>"2010-09-01",
"Num_Contrat_FM"=>"7",
"Num_Produit"=>"296",
"Id_Ets"=>"6")
);
//réalise la première boucle
foreach ($tab5 as $key=>$ligne) {
//réalise la seconde boucle
for($i=0; $i<2; $i++){
$dateduj = $ligne[$i]["dateduj"];
$Num_Contrat_FM = $ligne[$i]["Num_Contrat_FM"];
$Num_Produit = $ligne[$i]["Num_Produit"];
$Id_Ets = $ligne[$i]["Id_Ets"];
//prépare la requette
$sql = "SELECT
YEAR(DATE_ADD((DATE_ADD(contrat_fm.`Date_Anniversaire`, INTERVAL (ROUND(DATEDIFF('$dateduj',contrat_fm.`Date_Anniversaire`)/365)*1)YEAR)), INTERVAL -17 MONTH)) AS `YEARold`,
MONTH(DATE_ADD((DATE_ADD(contrat_fm.`Date_Anniversaire`, INTERVAL (ROUND(DATEDIFF('$dateduj',contrat_fm.`Date_Anniversaire`)/365)*1)YEAR)), INTERVAL -17 MONTH)) AS `MONTHold`,
YEAR(DATE_ADD((DATE_ADD(contrat_fm.`Date_Anniversaire`, INTERVAL (ROUND(DATEDIFF('$dateduj',contrat_fm.`Date_Anniversaire`)/365)*1)YEAR)), INTERVAL -5 MONTH)) AS `YEARnew`,
MONTH(DATE_ADD((DATE_ADD(contrat_fm.`Date_Anniversaire`, INTERVAL (ROUND(DATEDIFF('$dateduj',contrat_fm.`Date_Anniversaire`)/365)*1)YEAR)), INTERVAL -5 MONTH)) AS `MONTHnew`,
IF ( CURDATE() < (DATE_ADD(DATE_ADD(contrat_fm.Date_Anniversaire, INTERVAL 12 MONTH),INTERVAL -1 DAY)),contrat_fm.Date_Indice_An,NULL)AS `ANactu`,
contrat_fm.Num_Contrat_FM,
contrat_fm.Id_Ets,
histo_contrat_fm.Num_Produit,
histo_contrat_fm.Num_Motif_Resiliation_Produit
FROM
contrat_fm INNER JOIN histo_contrat_fm ON
(histo_contrat_fm.`Num_Contrat_FM` = contrat_fm.Num_Contrat_FM) AND
(histo_contrat_fm.`Id_Ets` = contrat_fm.`Id_Ets`)
INNER JOIN entreprise ON
(entreprise.`Id_Ets` = contrat_fm.`Id_Ets`)
INNER JOIN site ON
(site.`Num_Contrat_FM` = contrat_fm.Num_Contrat_FM) AND
(site.`Id_Ets` = contrat_fm.`Id_Ets`)
WHERE
histo_contrat_fm.`Num_Produit` = '$Num_Produit'
AND contrat_fm.`Id_Ets` = '$Id_Ets'
AND contrat_fm.`Num_Contrat_FM` = '$Num_Contrat_FM'
AND (histo_contrat_fm.`Num_Motif_Resiliation_Produit` is null)
GROUP BY
histo_contrat_fm.Num_Produit,
contrat_fm.Id_Ets,
contrat_fm.Num_Contrat_FM
ORDER BY
histo_contrat_fm.Num_Produit,
contrat_fm.Id_Ets,
contrat_fm.Num_Contrat_FM";
$resultats=$conn->query($sql);
//affiche les informations
while($row = $resultats->fetch()){
var_dump($row);
echo '<BR/>';
echo '<BR/>';
echo '<BR/>';
}//FIN WHILE
}//FIN DE LA BOUCLE
}FIN DE FOREACH
Le souci c'est que je n'ai pas de message d'erreur côté serveur.
J'ai eu le même résultat avec setFetchMode(PDO::FETCH_ASSOC), setFetchMode(PDO::FETCH_OBJ), j'ai essayé en réalisant une requête préparée et j'en passe...
Si quelqu'un à une idée je suis preneur, merci d'avance.