Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment faire une soustraction

4 réponses
Avatar
patrick
bonjour,

j'essaie de faire une soustraction de données qui se trouve dans une bd
mysql

exemple: débit - crédit = solde

voici mon code:

#######################################
$sql1=mysql_query('SELECT SUM(lb_débit) as total_débit FROM
`edc_livre_banque`');
$resa=mysql_fetch_assoc($sql1);
print ('total_débit: ');
echo $resa[total_débit];
print (' Euros');
?>
<br>
<?php

$sql2=mysql_query('SELECT SUM(lb_credit) as total_credit FROM
`edc_livre_banque`');
$resb=mysql_fetch_assoc($sql2);
print ('total_credit: ');
echo $resb[total_credit];
print (' Euros');
#######################################
?>
<br>
<?php


print ('solde: ');
echo $solde[$resa - $resb];
print (' Euros');
?>

j'ai cherché un peu par tous mai rien trouvé

patrick

4 réponses

Avatar
Olivier Miakinen
Bonjour.

C'est un jeu pour savoir combien on trouvera d'erreurs ?


j'essaie de faire une soustraction de données qui se trouve dans une bd
mysql


Je suppose que ça doit pouvoir se faire en SQL directement, mais n'étant
pas un spécialiste je ne réponds pas à cette question. Voir le groupe
consacré aux bases de données, fr.comp.applications.sgdb.

exemple: débit - crédit = solde

voici mon code:

#######################################
$sql1=mysql_query('SELECT SUM(lb_débit) as total_débit FROM
`edc_livre_banque`');


On a droit aux accents dans les noms de champs ?

$resa=mysql_fetch_assoc($sql1);


Tu n'as pas vérifié que ta fonction mysql_query() avait fonctionné, et
donc que $sql1 est valide.

print ('total_débit: ');


Ok.

echo $resa[total_débit];


Même si les accents sont autorisés dans les noms de champ, ici tu
utilises une constante total_débit au lieu de la chaîne 'total_débit'.
Fais un essai avec error_reporting(E_ALL) pour détecter toutes les
erreurs de ce genre.

print (' Euros');
?>
<br>
<?php

$sql2=mysql_query('SELECT SUM(lb_credit) as total_credit FROM
`edc_livre_banque`');
$resb=mysql_fetch_assoc($sql2);


Même remarque que précédemment concernant la réussite ou l'échec de la
requête.

print ('total_credit: ');
echo $resb[total_credit];


Et même remarque concernant les chaînes de caractères.

print (' Euros');
#######################################
?>
<br>
<?php


print ('solde: ');
echo $solde[$resa - $resb];


Si j'ai bien tout suivi, $resa et $resb sont des tableaux. Je ne vois
pas bien comment tu peux soustraire un tableau d'un autre, puis t'en
servir comme index dans un troisième. Au passage, je ne vois pas où est
défini ce troisième tableau $solde.

print (' Euros');
?>

j'ai cherché un peu [partout mais je n'ai] rien trouvé


Doc PHP : <http://www.php.net/docs.php>.
(Commencer par regarder ce qui concerne les chaînes de caractères et les
tableaux avant de passer aux fonctions MySQL.)

FAQ de ce groupe : <http://faqfclphp.free.fr/>.

Groupe de discussion sur les SGBD : <news:fr.comp.applications.sgbd>.

Avatar
P'tit Marcel
j'essaie de faire une soustraction de données qui se trouve dans une bd
mysql
echo $solde[$resa - $resb];


echo $resa['total_débit'] - $resb['total_credit'];

au passage, note l'utilisation des guillemets pour délimiter les chaînes
de caractères.

a+
--
P'tit Marcel

Avatar
patrick
merci pour ta réponse

excusez moi mais je débute j'ai trouvé un scripte sur le net et j'asseye
juste de l'adapter

je sais pas pour les accents mais c'est la correction de orthographe qui
ma changé les 'e' en 'é'

j'ai rajouté la ligne :error_reporting(E_ALL) et je n'ai pas d'erreur>
les 2 première requêtes fonctionnent
##############
$sql1=mysql_query('SELECT SUM(lb_debit) as total_debit FROM
`edc_livre_banque`');

$resa=mysql_fetch_assoc($sql1);
print ('total_debit: ');
echo $resa['total_debit'];
print (' Euros');
?>
<br>
<?php

$sql2=mysql_query('SELECT SUM(lb_credit) as total_credit FROM
`edc_livre_banque`');

$resb=mysql_fetch_assoc($sql2);
print ('total_credit: ');
echo $resb['total_credit'];
print (' Euros');


le résultat :
total_debit: 19625.92 Euros
total_credit: 17493.73 Euros
solde: -1 Euros



c'est ici que ça coinsse
le solde est toujours "-1"

<?php
$solde = ($sql1-$sql2);
print ('solde: ');
print ($solde);
print (' Euros');
?>


Avatar
patrick
voila j'ai trouvé

$sql4=mysql_query('SELECT SUM(lb_credit) - SUM(lb_debit) as solde FROM
`edc_livre_banque`');
$resd=mysql_fetch_assoc($sql4);
echo $resd['solde'];

merci