Aller au contenu

Calcul du modulo


Toucouleur

Sujets conseillés

Bonjour,

c'est mon premier post sur ce forum, et je fais appel à vous car je me suis couché tard dans la nuit pour un problème bien sépcifique, et que je ne trouve pas la solution.

L'objectif du script ci-après, est de calculer le prix d'un produit en fonction de la quantité achetée. Mais voila, lke but du jeux, c'est qu'en fonction du nombre de produits, le prix va changer.

Dans l'exemple ci-dessous, vous avez $modulo = 2. ça veut dire pour moi, que ce produit est à 10 et que je veux que le second pour l'utilisateur soit à 1 ($pdisount).

Donc si j'achète le produit 7 fois, je dois faire 3 x $pnormal + 3 x $pdiscount + 1 x $pnormal (le modulo) = 43

Mais mon soucis, viens du fait que si je change $modulo par 3 par exemple, mes rêgles de caclul ne fonctionnent plus du tout.

Comment faire pour touver l'algo idéal quelque soit le modulo qui représente donc le nombre de produit à acheter pour avoir le suivant à 1 ?

Merci par avance

<?php
 
    $qty = 7;
    $modulo = 2;
    $pnormal = 10;
    $pdiscount = 1;
   
   
    echo "<br>quantité : " . $qty;
    echo "<br>test quantité modulo : " . $qty % $modulo;
   
    echo "<br>tarif pour <b>premier</b> tarif : ";
    echo $t1prix = floor($qty / $modulo) * $pnormal;    
   
    echo "<br>tarif pour <b>second</b> tarif : ";
    echo $t2prix = $qty >= $modulo ? (floor($qty / $modulo) * $pdiscount) : 0;
     
   
    echo "<br>ajouté pour <b>ce qui reste</b> (modulo) :";
    echo $tmodulo = ($qty % $modulo) * $pnormal;
   
    $total = $qty >= $modulo ? intval($t1prix + $t2prix + $tmodulo) : $qty * $pnormal;
   
    echo "<br>total : ". $total;
 ?>

Lien vers le commentaire
Partager sur d’autres sites

Bonjour :D

Je ne sais pas si les prix du deuxième et du troisième sont égaux, avec un modulo 3 ?

     $qty = 7;
   $modulo = 2;
   $pnormal = 10;
   $pdiscount = 1;

$normaux = floor($qty/$modulo); // nombre de "cycles normaux"
$nbenplus = $qty - $normaux*$modulo; // nombre de produits en plus

$prixtot = $normaux*($modulo-1) * $pnormal + $normaux * $pdiscount + $pnormal * $nbenplus;

dit Sarc : en fait, c'est encore plus facile ce que tu demandais :D

Modifié par sarc
Lien vers le commentaire
Partager sur d’autres sites

avec un modulo 3, le prix du premier et second produit est égal à $pnormal, mais le prix du 3ième est donc à 1euros.

Donc avec un modulo 3, pour 3 produits achetés, ça doit me faire 21 (10 * 2 + 1 * 1 )

Merci Sarc, je vais jeter un oeil de suite sur ton idée de code.

Lien vers le commentaire
Partager sur d’autres sites

ah oui, désolé, j'avais compris "un produit acheté, deux à pris réduits"..

Je vais revoir le code, attends :D

dit Sarc : le code a été changé, suite à l'explication plus détaillée :D

Modifié par sarc
Lien vers le commentaire
Partager sur d’autres sites

c'est génial, cété tout con,et ça marche !!!

merci

c vrai que vu comme ça c'était tout bête, mais y'a des fois je vous jure :(

merci Sarc, merci je vais faire une sieste pour finir de coder ça sur mon nouveau projet de commerce électronique...

encore merci

ps : je reviendrai :P

Lien vers le commentaire
Partager sur d’autres sites

Bah merci, je vais me spécialiser dans les trucs tout cons pour aider les génies :nono::nono:

Enfin bon, content de te permettre une sieste :D

A bientôt lol ;)

Lien vers le commentaire
Partager sur d’autres sites

pardon, je suis désolé je ne voulais surtout pas te véxer...

je ne suis pas un génie, mais le code n'était en effet pas compliqué, mais je prenais le problème dans le mauvais sens.

encore merci

Très sincèrement

Cédric

Lien vers le commentaire
Partager sur d’autres sites

Je suis pas vexé du tout, je faisais de l'humour lol...

Il arrive effectivement qu'on fasse un code compliqué alors qu'il serait si simple de le faire autrement... C'est ça la magie de la prog :D

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...