Problemen met array_sum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees

kees

02/10/2004 17:54:00
Quote Anchor link
Ik hoop dat iemand mij hiermee kan helpen

Ik heb de volgende array nav een query gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if(mysql_num_rows($resultcheck)>0) {
  while($row = mysql_fetch_array($resultcheck)) {
    $produktnaam = $row['prod_naam'];
    $prodprijs = $row['prijs'];
    $aantal = $row['aantal'];
    $subtotaal['totaal']= ($row['aantal']*$row['prijs']);
    echo $subtotaal['totaal'].'<br>';
?>


Hij echoot dan het aantal waardes welke er in de array zitten (3 in mijn geval)

Maar als ik nu de $subtotaal echo met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
echo array_sum($subtotaal[totaal]);

// of echo met

echo array_sum($subtotaal['totaal']);

?>


Dan krijg ik:

Warning: array_sum(): The argument should be an array in /var/www/html/GROOTVERTROUE/winkel/winkelwagentje.php on line 75

Maar ik heb toch een array? aangezien die echo wel resultaat geeft?

Wat doe ik nou fout?
Gewijzigd op 03/10/2004 13:22:00 door Kees
 
PHP hulp

PHP hulp

15/11/2024 11:05:11
 
Mitch X

Mitch X

02/10/2004 19:03:00
Quote Anchor link
Het is toch geen array?
$subtotaal['totaal'] is geen array, maar een waarde eruit.

Probeer het eens met array_sum($subtotaal) hoewel ik het nut ervan niet inzie ...
 
Kees

kees

02/10/2004 20:20:00
Quote Anchor link
Ik heb dus nog steeds die problemen met array's.

Array_sum echoot alleen de laatste waarde.

Als ik nu de $subtotaal['totaal'] waardes in een array zet dmv:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $totaalbesteld= array ("totaal" =>$subtotaal['totaal']); ?>


ga ik dan de goeie kant op?
 
Mitch X

Mitch X

02/10/2004 22:03:00
Quote Anchor link
Je doet het verkeerd ;)
Kzal je maar eens echt helpen dan :)

Je zegt in je loop
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$subtotaal
['totaal']= ($row['aantal']*$row['prijs']);
?>


Stel aantal is 2 en prijs 10 dan is totaal 20.
Daarna, de volgende ronde van de loop dus ->
Stel aantal is 3 en prijs is 5 dan is totaal 15, het vorige totaal wordt dus overschreven ...
Snappie?
 
Kees

kees

02/10/2004 22:31:00
Quote Anchor link
Ja, dat begrijp ik.

Ik begon al sterk aan mezelf te twijfelen: al tig tutorials over array's doorgelzen in de tussentijd maar kwam er niet uit.

Maar hoe hoe zet ik dan die nieuwe waarde achter de andere in de array?

Ik heb het geprobeerd met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$subtotaal
['totaal'][]= ($row['aantal']*$row['prijs']);
?>


Maar dit levert ook niet op wat het zou moeten zijn.

Voel me eg wel dumm zeg.

De resultaten van $subtotaal wil ik ook los gebruiken op de pagina en pas als er geen resultaat meer is vd while loop wil ik het totaal vd subtotalen printen.
 
Mitch X

Mitch X

02/10/2004 22:49:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$subtotaal
['totaal'][]= ($row['aantal']*$row['prijs']);
?>

Zou z'n werk moeten doen ...
Probeer anders gewo0n eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$subtotaal
[] = ($row['aantal'] * $row]'prijs']);
?>
 
Kees

kees

02/10/2004 23:30:00
Quote Anchor link
Deze tip kreeg ik van iemand anders: was ik zelf nooit opgekomen om de array te zetten buiten de loop:

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
<?
$subtotalen
= array();

if(mysql_num_rows($resultcheck)>0) {
while($row = mysql_fetch_array($resultcheck)) {
    $produktnaam = $row['prod_naam'];
    $prodprijs = $row['prijs'];
    $aantal = $row['aantal'];
    $subtotaal= number_format(($row['aantal']*$row['prijs']),2);
    $subtotalen[] = $subtotaal;
    
    //Printopdrachten voor tabel
}
?>


en dan om het resultaat te printen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$totaalvoorbezorgkosten
= array_sum ($subtotalen);
echo number_format(($totaalvoorbezorgkosten),2);
?>



Weer een heleboel geleerd.

Als ik iets buiten de loop beschikbaar wil maken in een array dan kan ik hem beter daarvoor al zetten.

Ik heb nu ook dat als het totaal vd aantallen > 3 geen bezorgkosten erin gebouwd wat de volgende stap wasen dit werkt perfekt.

In ieder geval hartstikke bedankt voor je tijd en hulp.

Mvrgr

Kees
 



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.