Avatar billede moddi100 Seniormester
10. marts 2008 - 17:13 Der er 6 kommentarer og
1 løsning

Udregning baseret på oplysninger fra foreach

Hej alle

Jeg har en tabel hvori jeg udskriver forskellige oplysninger. Den ser sådan ud:


Navn:    Kr. pr. klik:    Antal klik:    I alt:
Jens      0,90              3              2,70
Michael  0,50              18              9,00


Det er altsammen hentet fra et array og udskrevet med foreach (Se evt. dette link for mere indformation http://www.eksperten.dk/spm/821111)

Det jeg gerne vil have er nu at den nederst regner den totale sum ud:

Navn:    Kr. pr. klik:    Antal klik:    I alt:
Jens      0,90              3              2,70
Michael  0,50              18              9,00

Totalt:  1,40              21              11,70

Hvordan kan det laves??
Avatar billede dkfire Nybegynder
10. marts 2008 - 17:37 #1
Kommer da meget an på hvordan du har lavet det nu. Vis noget kode og vi kan hjælpe :-)
Avatar billede zurekk Nybegynder
10. marts 2008 - 18:25 #2
Du kan vel bare i slutningen af dit foreach-loop lægge tallene du lige har arbejdet sammen med dem du har arbejdet med tidligere.
F.eks. sådan her:

foreach( $array as $key => $val )
{
print $val['navn'] . ':' . $val['krprklik'] . ', ' . $val['antalklik'] . '<br />';

$krprklikialt += $val['krprklik'];
$antalklikialt += $val['antalklik'];
$ialtialt += $val['krprklik']*$val['antalklik'];
}

Lidt sjusket, men du forstår sikkert hvor jeg vil hen med det.
Avatar billede moddi100 Seniormester
10. marts 2008 - 18:32 #3
ja jeg forstår udmærket hvad du mener. :D

Med hensyn til noget kode, kommer der noget senere, I må lige klare jeg uden så længe.
Koden ser nogenlunde ud som ovenstående(det udskrives dog i en tabel), feltet i alt er udregnet på den måde. Problemet er bare at hver række er udskrevet med et gennemløb af foreach(), Jens er altså gennemløb 1 og Michael er gennemløb 2.
Avatar billede moddi100 Seniormester
10. marts 2008 - 18:37 #4
Dkfire, med hensyn til koden, kan du jo følge linket jeg lavede før. Og nederst er stort set den kode jeg brugte, der er ændrede få småting i den, men ellers er det den samme.
Avatar billede moddi100 Seniormester
11. marts 2008 - 20:20 #5
Koden ser sådan ud:

for ($i=0; $i<$antal_kampagner; $i++) {
$kampagnenavn = $kampagner[$i];

echo "<tr>";

// Udskriv kampagnenavn.
echo "<td align='center'>" . $kampagnenavn . "</td>";

foreach ($$kampagnenavn as $key1 => $value1) {

// Hvis det er kr_pr_klik posten, så gem den og fortsæt med næste foreach.
if ($key1 == 'kr_pr_klik') {
$kr_pr_klik = $value1;
continue;
}

// HVis det ikke er den rigtige bruger, så fortsæt med næste foreach.
if ($key1 != $_SESSION['bruger']) {
continue;
}

// Vi kommer kun hertid hvis det er den rigtig bruger.
// Hvis strukturen ligger fast er der strengt taget ikke brug for en foreach her...
foreach ($value1 as $key2 => $value2) {
switch ($key2) {
case 'sidste_klik':
echo "<td align='center'>" . $value2 . "</td>";
break;
case 'antal_klik':
echo "<td align='center'>" . $value2 . "</td>";
$antal_klik = $value2;
break;
}
}

// Her skal kr_pr_klik udskrives.
echo "<td align='center'>" . $kr_pr_klik . "</td>";

// Optjent i alt.
// echo "<td align='center'>" . ($kr_pr_klik * $antal_klik) . "</td></tr>";

$kr_pr_klik_formateret = preg_replace("/\,/", ".", $kr_pr_klik);
$optjent_ialt = $kr_pr_klik_formateret * $antal_klik;
$dansk_formateret_tal = number_format($optjent_ialt, 2, ',', '.');
echo "<td align='center'>" . $dansk_formateret_tal . "</td></tr>";
}
}

echo "</table>";
Avatar billede moddi100 Seniormester
19. marts 2008 - 13:01 #6
Er der virkelig ingen der har en ide?
Avatar billede moddi100 Seniormester
27. marts 2008 - 13:23 #7
Lukker spørgsmålet. Fandt selv ud af det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester