Boucle Php / compteur
DAG
-
DAG -
DAG -
Bonjour,
j'ai écris le petit bout de code suivant :
Le morceau de code suivant sert a calculer la part en fiscalité.
Il y a deux tables SQL : les parents, et les "enfants".
Chaque parent vaut 2 parts. Chaque enfants de type "enfant" vaut 1 part et chaque enfant de type "conjoint" vaut 1 part aussi. (il y aura d'autre types d'enfants comme retraités a charge, et andicapés...).
Dans le while j'initialise une variable à $part à 2 et je l'incrémente de 1 selon les valeurs des types d'enfants.
Le probleme est que je n'arrive pas à la remettre à 0 ou a 2... lorsque je change de parent dans la requête !
Est-ce que quelqu'un aurai une idée ?
ça donnée ça lorsque j'exécute le code ci-dessus :
J'ai essayer de le triturer dans tous les sens mais rien n'y fait !!
j'ai écris le petit bout de code suivant :
function nbParts() { include '../bdd/connexion_bdd.php'; $statementnbAyantDroitOne = " SELECT ouvrant_droit.ID AS ID_OD, ouvrant_droit.nom_OD AS NAME, ouvrant_droit.prenom_OD AS FIRSTNAME, ayant_droit.lien_parente_AD AS LIEN FROM ouvrant_droit INNER JOIN ayant_droit ON (ouvrant_droit.ID = ayant_droit.ID_OD) "; $reqnbAyantDroitOne = mysql_query($statementnbAyantDroitOne) or die('<br>Erreur base de donnée !<br>' . $statementnbAyantDroitOne . '<br>'.mysql_error()); echo $statementnbAyantDroitOne . "<br><br>"; while($data = mysql_fetch_array($reqnbAyantDroitOne)) { $part = 2; if ($data[LIEN] == "conjoint") { $part = $part + 1; echo "L'ID " . $data[ID_OD] . " concernant l'ouvrant droit " . $data[NAME] . " " . $data[FIRSTNAME] . " a un conjoint<br>"; echo "Sa part est de : " . $part . "<br>"; } if($data[LIEN] == "enfant") { $part = $part + 1; echo "L'ID " . $data[ID_OD] . " concernant l'ouvrant droit " . $data[NAME] . " " . $data[FIRSTNAME] . " a un enfant<br>"; echo "Sa part est de : " . $part . "<br>"; } echo "TOTAL PARTS : " . $part . "<br><br>"; } }
Le morceau de code suivant sert a calculer la part en fiscalité.
Il y a deux tables SQL : les parents, et les "enfants".
Chaque parent vaut 2 parts. Chaque enfants de type "enfant" vaut 1 part et chaque enfant de type "conjoint" vaut 1 part aussi. (il y aura d'autre types d'enfants comme retraités a charge, et andicapés...).
Dans le while j'initialise une variable à $part à 2 et je l'incrémente de 1 selon les valeurs des types d'enfants.
Le probleme est que je n'arrive pas à la remettre à 0 ou a 2... lorsque je change de parent dans la requête !
Est-ce que quelqu'un aurai une idée ?
ça donnée ça lorsque j'exécute le code ci-dessus :
SELECT ouvrant_droit.ID AS ID_OD, ouvrant_droit.nom_OD AS NAME, ouvrant_droit.prenom_OD AS FIRSTNAME, ayant_droit.lien_parente_AD AS LIEN FROM ouvrant_droit INNER JOIN ayant_droit ON (ouvrant_droit.ID = ayant_droit.ID_OD) L'ID 274 concernant l'ouvrant droit xxxxxxxxxxxxxxxxx a un conjoint Sa part est de : 3 TOTAL PARTS : 3 L'ID 274 concernant l'ouvrant droit xxxxxxxxxxxxxxxxx a un enfant Sa part est de : 3 TOTAL PARTS : 3 L'ID 274 concernant l'ouvrant droit xxxxxxxxxxxxxxxxx a un enfant Sa part est de : 3 TOTAL PARTS : 3
J'ai essayer de le triturer dans tous les sens mais rien n'y fait !!
A voir également:
- Boucle Php / compteur
- Compteur électrique - Guide
- Compteur contractions - Télécharger - Santé & Bien-être
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
2 réponses
Bonjour,
Tu peux garder dans une variable la valeur de ID_OD et remettre la variable $part égale à 2 a chaque changement
Tu dois aussi rajouter un order by dans ton select
A plus
Tu peux garder dans une variable la valeur de ID_OD et remettre la variable $part égale à 2 a chaque changement
$ancien_id_od = ' '; while($data = mysql_fetch_array($reqnbAyantDroitOne)) { if ($ancien_id_od != $data[ID_OD]) { $part = 2; $ancien_id_od = $data[ID_OD] } if ($data[LIEN] == "conjoint") { $part = $part + 1; echo "L'ID " . $data[ID_OD] . " concernant l'ouvrant droit " . $data[NAME] . " " . $data[FIRSTNAME] . " a un conjoint<br>"; echo "Sa part est de : " . $part . "<br>"; } if($data[LIEN] == "enfant") { $part = $part + 1; echo "L'ID " . $data[ID_OD] . " concernant l'ouvrant droit " . $data[NAME] . " " . $data[FIRSTNAME] . " a un enfant<br>"; echo "Sa part est de : " . $part . "<br>"; } echo "TOTAL PARTS : " . $part . "<br><br>"; }
Tu dois aussi rajouter un order by dans ton select
$statementnbAyantDroitOne = " SELECT ouvrant_droit.ID AS ID_OD, ouvrant_droit.nom_OD AS NAME, ouvrant_droit.prenom_OD AS FIRSTNAME, ayant_droit.lien_parente_AD AS LIEN FROM ouvrant_droit INNER JOIN ayant_droit ON (ouvrant_droit.ID = ayant_droit.ID_OD) ORDER BY ID_OD ";
A plus