multi calcul.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : multi calcul.

Re: multi calcul.

par piotrowski-s » 19 mars 2012, 17:13

j'ai plus qu'à créer cette fonction. quoi qu'il en soit la ruse me semble finaude. Je m'y atèle de ce pas.

Re: multi calcul.

par Mazarini » 19 mars 2012, 12:34

Il me semblerai bien de faire une fonction qui retourne les intérêts fonction du principal, de la date de début et du taux. Ca simplifirai de toute facon la lecture de tes traitements puisque la complexité du calcul serait déplacée dans une fonction. Il est de plus probable que cette fonction sera utile à plusieurs endroits.

Re: multi calcul.

par piotrowski-s » 19 mars 2012, 11:50

je ne sais pas quelle solution est la mieux adaptée?en sachant que de toute évidence, je vais avoir besoin d'un affichage dynamique, puisque les intérêts changent chaque jours... c'est pour cela que je n'enregistre rien dans ma bdd excepté le taux ainsi que la date échue.

Re: multi calcul.

par Ryle » 18 mars 2012, 11:56

foreach existe bien en php, mais puisque tu as déjà une boucle while pour parcourir tous les enregistrements renvoyés par ta requête (même si celle ci n'en retourne qu'un pour le moment), autant l'utiliser :)

Il faut juste conserver les informations qui t'intéressent d'une itération à l'autre, en les stockant dans un tableau, ou en faisant directement un cumul dans ta boucle..

A voir également si cela t'intéresse, mais je pense que tes différentes opérations (somme, différence de date, produit, ...), peuvent s'effectuer directement dans ta requête sql pour te renvoyer le résultat souhaité (après, tout dépend de ton besoin :))

Re: multi calcul.

par piotrowski-s » 17 mars 2012, 21:19

finalement mon problème est presque résolu... Sauf que j'ai un dernier détail. Il faudrait que je fasses une boucle de type foreach mais je crois que ce n'est que valable pour mysql? et non pas pour php? je me trompes? le souci que j'ai c'est que je peux avoir 10000 factures avec 10000 dates d'échéances différentes et 10000 montant principaux différents. Je ne sais pas comment coder, mais en tout cas le résultat fonctionne pour une facture déjà :)
<?php 
$sql = 'select * from factures where n_doss='.$_GET['n_doss'].'';
$query = mysql_query($sql);
while ($data=mysql_fetch_assoc($query))
{
  
   $principal = $data['montant'];
   $echeance = $data['date_echue']; 
   $day= date('y-m-d');

 $s = strtotime($day)-strtotime($echeance); 
 $d = intval($s/86400)+1;   
   

   $i = (0.06);
 
$tx=  $principal*($i/360)*$d;
$i2= number_format($tx, 2, ',', ' ');
echo $i2 ;
 }
 ?>

Re: multi calcul.

par Ryle » 17 mars 2012, 12:33

mais pourtant date(ymd), renvoit bien une date non?
Non, si tu regarde la doc, c'est bien une chaine de caractère qui est renvoyée et pas un objet de type date :
string date ( string $format [, int $timestamp = time() ] )
Retourne une date sous forme d'une chaîne, au format donné par le paramètre format, fournie par le paramètre timestamp ou la date et l'heure courantes si aucun timestamp n'est fourni. En d'autres termes, le paramètre timestamp est optionnel et vaut par défaut la valeur de la fonction time().

Re: multi calcul.

par piotrowski-s » 17 mars 2012, 09:36

j'ai remodifié tout le code... le soucis c'est qu'il me renvoit 0...
<?php 
$sql = 'select * from factures where n_doss='.$_GET['n_doss'].'';
$query = mysql_query($sql);
while ($data=mysql_fetch_assoc($query))
{
  
   $principal = $data['montant'];
   $echeance = $data['date_echue']; 
   $duree= $diff = abs(strtotime( date('Y-m-d')) - strtotime($echeance));
   $interet = (1 + 0.06);
 function puissance($x,$y)
 { 
  $resultat=0;
  for ($i=0;$i<$y;$i++)
   $resultat *= $x;
  return $resultat;
 }
 
 $ti= $principal*puissance($interet,$duree);
 echo $ti ; }
 ?>

Re: multi calcul.

par piotrowski-s » 17 mars 2012, 08:29

mais pourtant date(ymd), renvoit bien une date non?

Re: multi calcul.

par xTG » 16 mars 2012, 19:19

L'erreur est très explicite. La fonction requiert un objet DateTime et tu lui donnes une String. ;)

Re: multi calcul.

par piotrowski-s » 16 mars 2012, 18:06

j'ai essayé de remanier le script à ma sauce ^^... Mais que d'erreurs/
<?php $total_interet = 0;
$total_principal = 0;
$taux_interet = 0;
 
$sql = 'select * from factures where n_doss='.$_GET['n_doss'].'';
$query = mysql_query($sql);
while ($data=mysql_fetch_assoc($query))
{
  
   $principal = $data['montant'];
   $echeance = $data['date_echue']; 
   $duree= Date_diff(date('ymd'),$echeance);
   $interet = $principal*($nb + ($duree*$taux) - $principal);
 
}
echo $interets ;
 ?>
Si quelqu'un peut m'aider. ca serait avec grand plaisir, la il me dit.
( ! ) Warning: date_diff() expects parameter 1 to be DateTime, string given in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\tableau-central.php on line 108
Call Stack
#	Time	Memory	Function	Location
1	0.0017	951984	{main}( )	..\creance.php:0
2	0.0421	1226688	include( 'C:\wamp\www\NEOGETCASH\GESTIONNAIRE\tableau-central.php' )	..\creance.php:673
3	0.0433	1231752	date_diff ( )	..\tableau-central.php:10
d'avance merci pour votre aide

Re: multi calcul.

par piotrowski-s » 15 mars 2012, 09:18

et après je ne sais pas encore ...

Re: multi calcul.

par piotrowski-s » 14 mars 2012, 18:08

déjà je vais remplacer
$duree par $duree= DATEDIFF(NOW(),$date_echeance)

Re: multi calcul.

par piotrowski-s » 14 mars 2012, 17:36

au niveau des echos je ne sais pas quoi afficher.

Re: multi calcul.

par Mazarini » 14 mars 2012, 15:55

C'est équivalent à $total_principal = $total_principal + $principal
Un peu dans le genre du $i++, un truc de fainéant.

Re: multi calcul.

par piotrowski-s » 14 mars 2012, 15:41

je ne comprends pas les += ?