Problemen met array_sum
Ik heb de volgende array nav een query gemaakt:
Code (php)
1
2
3
4
5
6
7
8
9
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>';
?>
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)
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
$subtotaal['totaal'] is geen array, maar een waarde eruit.
Probeer het eens met array_sum($subtotaal) hoewel ik het nut ervan niet inzie ...
Array_sum echoot alleen de laatste waarde.
Als ik nu de $subtotaal['totaal'] waardes in een array zet dmv:
ga ik dan de goeie kant op?
Kzal je maar eens echt helpen dan :)
Je zegt in je loop
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?
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
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.
Zou z'n werk moeten doen ...
Probeer anders gewo0n eens
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
}
?>
$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)
1
2
3
4
2
3
4
<?
$totaalvoorbezorgkosten= array_sum ($subtotalen);
echo number_format(($totaalvoorbezorgkosten),2);
?>
$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