Optellen van een While-loop?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen B

Jeroen B

14/10/2009 12:53:00
Quote Anchor link
Tja misschien een beetje een stomme vraag. Maar ik heb een while-loop en nou wil ik de bedragen die uit (sprintf ('%01.2f', $aantal2 * $winkelwagenRow['price'])) komen bij elkaar optellen. Maar ik krijg steeds alleen de laatste.

Weet iemand hoe ik dat moet doen?
Of moet ik het in de sessie zetten? :S

De code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?
$_SESSION
['winkelwagen'][PARAM4]['aantal'] = $_POST['aantal'];
            
                        
                    while(list($id, $aantal) = each($_SESSION['winkelwagen'])){
                        
                        while(list($id2, $aantal2) = each($aantal)){
                            
                            $winkelwagen = $db->query('
                                SELECT *
                                FROM shop_products b  
                                WHERE b.id = '
.$id
                            );
                            
                            if ($winkelwagen) {
                                
                                    
                                    while ($winkelwagenRow = $winkelwagen->fetch_assoc()) {    
                                        $table .= '<table cellspacing="0px" height="90px" width="100%" border="0px" background="#FFF">';
                                        $table .= '<tr>';
                                        $table .= '<td width="20%"><img src="' . WS_PATH_ASSETS . 'products/' . Core::clean($winkelwagenRow['imageFile']) . '" class=" blockImg iconImg100x80" width="80" /></strong></td>';
                                        $table .= '<td width="47%"><strong>'.$winkelwagenRow['name'].'</strong><br />Aantal: '.$aantal2.'<br /><a href="">[verwijderen]</a></td>';
                                        $table .= '<td width="20%">&euro; '.$winkelwagenRow['price'].'</td>';
                                        $table .= '<td width="13%"><br />&euro; '. sprintf ('%01.2f', $aantal2 * $winkelwagenRow['price']) .'</td>';
                                        $table .= '</tr>';
                                        $table .= '</table>';
                                    
                                    $totalprice = sprintf ('%01.2f', $aantal2 * $winkelwagenRow['price'] + '7.50');
                                    }
                                    
                            
                            }
                            
                        }                                    

                    }

?>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen B
 
PHP hulp

PHP hulp

11/05/2024 22:14:17
 
Joakim Broden

Joakim Broden

14/10/2009 12:57:00
Quote Anchor link
Iets in deze richting?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$bedrag = 0;

while {
$bedrag = "$bedrag+$prijs";
}

echo"$bedrag";


heb dit niet getest
 
Jaron T

Jaron T

14/10/2009 13:02:00
Quote Anchor link
@ Oetzie,

variabele horen BUITEN quotes,

echo "$bedrag";
echo $bedrag;

$bedrag = "$bedrag+$prijs":
$bedrag= $bedrag + $prijs;
 
Joakim Broden

Joakim Broden

14/10/2009 13:15:00
Quote Anchor link
Jaron,

Dat hoor ik wel vaker. Maar waarom eigenlijk?
 
Michael -

Michael -

14/10/2009 13:27:00
Quote Anchor link
Oetzie schreef op 14.10.2009 13:15:
Jaron,

Dat hoor ik wel vaker. Maar waarom eigenlijk?

Als je 't vaker hoort, waarom doe je 't dan niet?
't is overzichtelijker, sneller, en omdat binnen quotes tekst hoort te staan, dus php "$var" niet altijd foutloos herkend kan worden.
Lees dit maar eens: Variabelen buiten quotes
en doe 't de volgende keer goed, zeker als je mensen wil helpen moet je ze geen foute manieren aanleren.
 
Jeroen B

Jeroen B

14/10/2009 14:16:00
Quote Anchor link
Maar hoe kom ik dan aan $bedrag en $prijs ?:S

Hoe lees ik dit in zijn geheel uit? Snap het niet echt :$
 
Jesper Diovo

Jesper Diovo

14/10/2009 14:31:00
Quote Anchor link
Jij weet toch wel waar de prijs zit?

Ik zou het trouwens zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$totaal
= 0;

while(...) {
  $totaal += $prijs*$hoeveelheid;
}

?>
 
Jeroen B

Jeroen B

14/10/2009 16:28:00
Quote Anchor link
nja hij geeft nu alles wel weer idd. De totaalprijs per product onder elkaar.
Maar hij telt ze nog niet bij elkaar op?
 
- SanThe -

- SanThe -

14/10/2009 16:36:00
Quote Anchor link
Laat dat relevante stukje code eens zien.
 
Jeroen B

Jeroen B

16/10/2009 11:14:00
Quote Anchor link
ik heb nu:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?
while(list($id, $aantal) = each($_SESSION['winkelwagen'])){
                        
    while(list($id2, $aantal2) = each($aantal)){
                            
        $winkelwagen = $db->query('
            SELECT *
            FROM shop_products b  
            WHERE b.id = '
.$id
        );
                            
        if ($winkelwagen) {
                                
            while ($winkelwagenRow = $winkelwagen->fetch_assoc()) {    
            $table .= '<table cellspacing="0px" height="90px" width="100%" border="0px" background="#FFF">';
            $table .= '<tr>';
                $table .= '<td width="20%"><img src="' . WS_PATH_ASSETS . 'products/' . Core::clean($winkelwagenRow['imageFile']) . '" class=" blockImg iconImg100x80" width="80" /></strong></td>';
            $table .= '<td width="47%"><strong>'.$winkelwagenRow['name'].'</strong><br />Aantal: '.$aantal2.'<br /><a href="">[verwijderen]</a></td>';
            $table .= '<td width="20%">&euro; '.$winkelwagenRow['price'].'</td>';
            $table .= '<td width="13%"><br />&euro; '. sprintf ('%01.2f', $aantal2 * $winkelwagenRow['price']) .'</td>';
            $table .= '</tr>';
            $table .= '</table>';
                                                            
            $totaal = 0;

            while($totaal < 1) {
            totaal += $aantal2 * $winkelwagenRow['price'];
            echo sprintf ('%01.2f', $totaal) .'<br />';
            }

                                    

                $totalprice = sprintf ('%01.2f', $aantal2 * $winkelwagenRow['price'] + '7.50');
            }
                                    
                            
        }
                            
    }                                
}

?>
 
Jeroen B

Jeroen B

19/10/2009 09:43:00
Quote Anchor link
Iemand nog een idee?
 
M Ypma

M Ypma

19/10/2009 10:14:00
Quote Anchor link
je output binnen je while het totaal. Doe dit eens na je while...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.