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 de contractions - Télécharger - Santé & Bien-être
- Easy php - Télécharger - Divers Web & Internet
- Compteur communicant - Guide
- Expert php pinterest - Télécharger - Langages
- Compteur point fléchette excel - Télécharger - Sport
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