par
devcphp » 07 févr. 2012, 12:04
Bon j'ai pas mal avancé depuis mais j'ai un souci entre ce que me renvoit ma requqete quand je l'utilise directement dans access et ce qui m'est renvoyé par php à savoir
SELECT B.nomProprietaire AS nomProprietaire, B.reference AS reference, C.dateCreation AS dateCreation, C.numeroFacture AS numeroFacture, C.tarifTotal AS tarifTotal, C.tarifTotalHT AS tarifTotalHT FROM ((detailFacture AS A
INNER JOIN commande AS B ON B.idCommande=A.idCommande)
INNER JOIN facture AS C ON C.idFacture=A.idFacture)
WHERE C.dateCreation BETWEEN {D '2011-12-10'} AND {D '2011-12-13'};
me renvoit 10 resultat dans access
alors que mon code php me renvoit un seul resultat
/** fonction de transformation de date entrée par l'utilisateur à des fins d'une recherche dans la base de données access
* @ date : date entrée sous la forme par l'utilisateur 01/02/2011
* @ return date : date formatée attendu par la base de données access {D '2011-02-01'}
**/
function ConversionEnDateCompatibleDbAccess ($iDateEntreUtilisateur){
list($iJour,$iMois,$iAnnee) = explode ('/',$iDateEntreUtilisateur);
$iDateFormatee = '{D\''.$iAnnee.'-'.$iMois.'-'.$iJour.'\'}';
return $iDateFormatee;
}
$oConnection=GetConnection::GetConnection();
$oPDOStatement=$oConnectionAnalysimmo->query('SELECT B.nomProprietaire AS nomProprietaire, B.reference AS reference, C.dateCreation AS dateCreation, C.numeroFacture AS numeroFacture, C.tarifTotal AS tarifTotal, C.tarifTotalHT AS tarifTotalHT
FROM ((detailFacture AS A
INNER JOIN commande AS B ON B.idCommande=A.idCommande)
INNER JOIN facture AS C ON C.idFacture=A.idFacture)
WHERE C.dateCreation BETWEEN '.ConversionEnDateCompatibleDbAccess($iValeurDebutPeriode).'
AND '.ConversionEnDateCompatibleDbAccess($iValeurFinPeriode).'');
$aNomProprietaire=array();
$aReference=array();
$aDateCreation=array();
$aNumeroFacture=array();
$aTarifTotal=array();
$aTarifTotalHt=array();
while($aRow=$oPDOStatement->fetch()){
$aNomProprietaire[]= $aRow['nomProprietaire'];
$aReference[] = $aRow['reference'];
$aDateCreation[]= $aRow['dateCreation'];
$aNumeroFacture[]= $aRow['numeroFacture'];
$aTarifTotal[]= $aRow['tarifTotal'];
$aTarifTotalHt[] = $aRow['tarifTotalHT'];
}
$oConnection=NULL;
unset($oConnection);
// on compte le nombre de resultat
$iNbreNomProprietaire = count($aNomProprietaire);
$iNbreReference= count ($aReference);
$iNbreDateCreation= count ($aDateCreation);
$iNbreNumeroFacture= count ($aNumeroFacture);
$iNbreTarifTotal= count ($aTarifTotal);
$iNbreTarifTotalHt= count ($aTarifTotalHt);
wb_message_box($window,$iNbreNomProprietaire.' ont été trouvé ','nombre de resultat renvoyés',WBC_WARNING);
et la j'ai une message box m'informant que je n'ai qu'un jeu de resultat disponible !!!
j'utilise winbinder pour generer une interface graphique cliente.
OU se situe mon erreur? merci à vous
Bon j'ai pas mal avancé depuis mais j'ai un souci entre ce que me renvoit ma requqete quand je l'utilise directement dans access et ce qui m'est renvoyé par php à savoir
[sql]SELECT B.nomProprietaire AS nomProprietaire, B.reference AS reference, C.dateCreation AS dateCreation, C.numeroFacture AS numeroFacture, C.tarifTotal AS tarifTotal, C.tarifTotalHT AS tarifTotalHT FROM ((detailFacture AS A
INNER JOIN commande AS B ON B.idCommande=A.idCommande)
INNER JOIN facture AS C ON C.idFacture=A.idFacture)
WHERE C.dateCreation BETWEEN {D '2011-12-10'} AND {D '2011-12-13'};[/sql] me renvoit 10 resultat dans access
alors que mon code php me renvoit un seul resultat
[php]
/** fonction de transformation de date entrée par l'utilisateur à des fins d'une recherche dans la base de données access
* @ date : date entrée sous la forme par l'utilisateur 01/02/2011
* @ return date : date formatée attendu par la base de données access {D '2011-02-01'}
**/
function ConversionEnDateCompatibleDbAccess ($iDateEntreUtilisateur){
list($iJour,$iMois,$iAnnee) = explode ('/',$iDateEntreUtilisateur);
$iDateFormatee = '{D\''.$iAnnee.'-'.$iMois.'-'.$iJour.'\'}';
return $iDateFormatee;
}
$oConnection=GetConnection::GetConnection();
$oPDOStatement=$oConnectionAnalysimmo->query('SELECT B.nomProprietaire AS nomProprietaire, B.reference AS reference, C.dateCreation AS dateCreation, C.numeroFacture AS numeroFacture, C.tarifTotal AS tarifTotal, C.tarifTotalHT AS tarifTotalHT
FROM ((detailFacture AS A
INNER JOIN commande AS B ON B.idCommande=A.idCommande)
INNER JOIN facture AS C ON C.idFacture=A.idFacture)
WHERE C.dateCreation BETWEEN '.ConversionEnDateCompatibleDbAccess($iValeurDebutPeriode).'
AND '.ConversionEnDateCompatibleDbAccess($iValeurFinPeriode).'');
$aNomProprietaire=array();
$aReference=array();
$aDateCreation=array();
$aNumeroFacture=array();
$aTarifTotal=array();
$aTarifTotalHt=array();
while($aRow=$oPDOStatement->fetch()){
$aNomProprietaire[]= $aRow['nomProprietaire'];
$aReference[] = $aRow['reference'];
$aDateCreation[]= $aRow['dateCreation'];
$aNumeroFacture[]= $aRow['numeroFacture'];
$aTarifTotal[]= $aRow['tarifTotal'];
$aTarifTotalHt[] = $aRow['tarifTotalHT'];
}
$oConnection=NULL;
unset($oConnection);
// on compte le nombre de resultat
$iNbreNomProprietaire = count($aNomProprietaire);
$iNbreReference= count ($aReference);
$iNbreDateCreation= count ($aDateCreation);
$iNbreNumeroFacture= count ($aNumeroFacture);
$iNbreTarifTotal= count ($aTarifTotal);
$iNbreTarifTotalHt= count ($aTarifTotalHt);
wb_message_box($window,$iNbreNomProprietaire.' ont été trouvé ','nombre de resultat renvoyés',WBC_WARNING);
[/php]
et la j'ai une message box m'informant que je n'ai qu'un jeu de resultat disponible !!!
j'utilise winbinder pour generer une interface graphique cliente.
OU se situe mon erreur? merci à vous