Page 1 sur 1

PHP: Récuperation d'un calcul MySQL

Posté : 10 oct. 2010, 08:15
par mctarek
Bonjour. Après des heures de recherches, je reviens vers vous pour mon problème.
Je sais interagir avec PHP et MySQL pour récupérer des données suite aux requêtes.
Mais dernièrement, j'ai découvert la fonction MySQL SUM() pour obtenir la somme
des données d'une colonne. Exemples :
SELECT SUM( debit ) FROM `banque` WHERE `date` BETWEEN '2010-01-01' AND '2010-06-01'
SELECT SUM( credit - debit ) FROM `banque` WHERE `date` BETWEEN '2010-01-01' AND '2010-06-01'
Et MySQL répond parfaitement en donnant la somme des données.
Mais comment récupérer cette somme via PHP sachant que les fonctions mysql_fetch_assoc($requete) ou mysql_fetch_array($requete,MYSQL_ASSOC)
s'attendent à récupérer toutes les données d'une colonne?
Merci de votre réponse.
Tarek

Re: PHP: Récuperation d'un calcul MySQL

Posté : 10 oct. 2010, 09:33
par Cyrano
Utilise des alias :
SELECT SUM( debit ) AS somme_debit 
FROM `banque` 
WHERE `date` BETWEEN '2010-01-01' AND '2010-06-01';
SELECT SUM( credit - debit ) AS solde 
FROM `banque` 
WHERE `date` BETWEEN '2010-01-01' AND '2010-06-01';
Comme ça, tu récupère l'alias comme nom de colonne, « somme_debit » pour la première, « solde » pour la seconde.

Re: PHP: Récuperation d'un calcul MySQL

Posté : 10 oct. 2010, 09:52
par mctarek
Une réponse aussi rapide, bravo!
Je vais essayer ta solution.
Je viens de trouver une autre solution avec foreach(), sans doute moins élégante: quelle fierté :-)
$sql = "SELECT SUM(credit) FROM {$_POST['compte']}  WHERE date BETWEEN '{$_POST['date1']}' AND '{$_POST['date2']}'";
//envoi de la requête pour calcul créditeur
$requete = mysql_query ($sql,$id_connex);
while($leTableau = mysql_fetch_assoc($requete))
{
 // Affichage des valeurs du tableau
foreach($leTableau as $cle => $valeur) 
{ 
echo 'du ', $_POST['date1'], ' au ', $_POST['date2'], '<br/>';
echo 'crédit: ', '+', round($valeur,2) , '€', '<br/>';
}
}
Et ça fonctionne ausi bien avec SUM(debit) que SUM(debit-credit)
Débutant, mais ça avance doucement...Merci à tous!