Menu

Comment insérer une boucle PHP dans du PHP

-
Bonjour,

Mon problème est le fait que j'aimerais ajouter une boucle while dans du code PHP. Le but c'est de réaliser une calculatrice qui calcule la taxe à ajouter à un prix conformément au montant(grille tarifaire) saisi. Sauf que les chiffres sont issu d'une base de données.

Si c'était statique, j'allais le faire mais le fait que les chiffres provient de la DB me complique la tache.
Votre aide sera hautement apprécié!

Merci d'avance!


Voici le code PHP:
  if($_POST['amount'] <= 10000){
    echo $_POST['amount'] + 500;
    } elseif ($_POST['amount'] <= 20000) {
    echo $_POST['amount'] + 2000;
  }
  
  
  
Voici la boucle à insérer:
    <?php while($price = $ps3 ->fetch()) { ?>
 //Code PHP ci-dessus
 <?php } ?>
Les chiffres doivent provenir de la base de données.

 
J'ai essayé ceci:
<?php
  if($_POST['amount'] <= 10000){
    echo $_POST['amount'] + 500;

    <?php while($price = $ps3 ->fetch()) { ?>  //Problème ici: 

  } elseif ($_POST['amount'] <= 20000) {   //Problème ici: 
    echo $_POST['amount'] + 2000;    //Problème ici: 

  }
    <?php } ?>     //Problème ici
?>

EDIT : Ajout des BALISES DE CODE

Afficher la suite 

Votre réponse

3 réponses

Messages postés
7037
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
bonjour, je suppose que c'est la grille tarifaire qui est enregistrée dans la base de données.
comment est structurée la base?
pourquoi fais-tu une boucle au lieu d'extraire immédiatement les information utiles?
Commenter la réponse de yg_be
0
Merci
Mon soucis est le faite qu'en statique, ma calculatrice aura le script de calcul ci-dessous:
       
 <?php 

        if (isset($_POST['submit'])){
            $montant = $_POST['amount'];
            if ($montant <= 10000) {
                echo $montant + 500;
            } else
            if ($montant <= 50000) {
                echo $montant + 1500;
            } else
            if ($montant <= 100000) {
                echo $montant + 2000;
            } else
            if ($montant <= 200000) {
                echo $montant + 2500;
            } else
            if ($montant <= 300000) {
                echo $montant + 3000;
            } else
            if ($montant <= 400000) {
                echo $montant + 4000;
            } else
            if ($montant <= 500000) {
                echo $montant + 5000;
            } else
            if ($montant <= 600000) {
                echo $montant + 6000;
            } else
            if ($montant <= 700000) {
                echo $montant + 7000;
            } else
            if ($montant <= 800000) {
                echo $montant + 8000;
            } else
            if ($montant <= 900000) {
                echo $montant + 9000;
            } else
            if ($montant <= 1000000) {
                echo $montant + 10000;
            } else{

            }
        }
?>


Ce script permet de calculer les taxes à ajouter sur un montant, ces taxes varient en fonction du montant.
Le soucis est maintenant le fait de pouvoir donner le privilège aux utilisateurs de mon application de pouvoir modifier
les intervals et grille tarifaire sans pour autant me solliciter pour éditer le coude source.

C'est pourquoi j'ai pensé à mettre une boucle que de répété les syntaxes ci-dessus.

J'ai alors crée une table "grille_tarifaire" qui a l'architecture ci-desous:
- id
- IntervalA
- IntervalB
- Taxe

Exemple:

Record1
- id: 1
- IntervalA: 0
- IntervalB: 500
- Taxe: 50

Record2
- id: 2
- IntervalA: 501
- IntervalB: 1000
- Taxe: 100

etc.

Je me trouve confronté à un bug de vouloir insérer une déclaration PHP (de la boucle) dans du PHP

EDIT : Ajout des BALISES DE CODE

Commenter la réponse de douah-max
Messages postés
7037
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
puisque tu as une table dans une base de données, tu peux obtenir la taxe sans faire de boucle, en faisant une requête telle que
select Taxe from grille_tarifaire where montant >= IntervalA and montant <= IntervalB
Commenter la réponse de yg_be