Comment insérer une boucle PHP dans du PHP

Fermé
douah-max - Modifié le 26 nov. 2018 à 09:58
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 26 nov. 2018 à 12:19
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

A voir également:

3 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
22 nov. 2018 à 17:04
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?
0
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

0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2018 à 12:19
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
0