[PHP/MYSQL] Probleem met berekenen totaalprijs

Pagina: 1
Acties:
  • 209 views sinds 30-01-2008

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
Ik heb problemen met het berekenen van een totaalprijs, het moet in mysql van de opdrachtgever maar ik kom er niet helemaal meer uit.

ik heb een array met producten, deze hebben allemaal een object_id.
Een voorbeeld van een array zoals die binnenkomt op de order pagina is:

code:
1
2
3
4
5
6
7
8
9
10
11
    [product] => Array
        (
            [1] => 0
            [2] => 3
            [3] => 0
            [4] => 0
            [5] => 2
            [6] => 0
            [7] => 0
            [8] => 4
        )


object_id --> en de kwantiteit.

ik heb deze tabel:
CREATE TABLE `verhuur_objecten` (
`object_id` int(3) NOT NULL default '0',
`object_naam` varchar(250) NOT NULL default '',
`object_prijs` float(3,2) NOT NULL default '0.00',
UNIQUE KEY `object_id` (`object_id`)
) TYPE=MyISAM;

Hierin staat de prijs per object.
Nu moet ik dus in dit geval in mysql dus de volgende bewerkingen doen, waar ik niet uitkom.
Het gaat om een select query

- object 2: 3 * prijs van object_id 2
- object 5: 2 * prijs van object_id 5
- object 8: 4 * prijs van object_id 8

plus dat ik graag nog een subtotaal terug zou krijgen.
maar dat zou eventueel ook in php kunnen.

wie zou mij heer even mee kunnen helpen, ik heb de search al geprobeerd en kijk de hele avond al tegen mislukte queries aan. Ook google heb ik geprobeerd.

[ Voor 116% gewijzigd door Creepy op 07-01-2005 22:47 ]

aka Crypto T


  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 09-05 12:41
dat wordt een combo van php en mysql. dit kan gewoon niet in 1 query, als je het een en ander met temporary tables doet kan het in mysql only maar handig is het niet.

dit is een kleine start en moet je al een eind mee kunnen komen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//komma gescheiden lijst maken van product id's
$comma_separated = implode(',', array_keys($products_in_basket)); 

//query in elkaar beuken
$query = "SELECT object_naam, object_prijs FROM verhuur_objecten WHERE object_id IN(". mysql_real_escape_string($comma_separated) .")";

$result = mysql_query($query);

$totaal_prijs = 0;

if (mysql_num_rows($result)) > 0) {
    while ($recset = mysql_fetch_assoc($result)) {
        $totaalprijs += $recset['object_prijs'] * $products_in_basket[$recset['object_id']];

        //doe hier je ding enzo
    }
    

    //totalen tonen
    echo $totaal_prijs;

} else {
    //geen producten in mandje
}


Ga pas bedragen op het eind afronden. bedragen die op het scherm getoond worden (zoals subtotalen van artikelen (stuksprijs * aantal) of btw bedragen mogen afgerond getoond worden, rond echter NOOIT af in de prijsberekening code, dan kan je heel wat euro's per transactie kosten bij grotere bedragen.

[ Voor 4% gewijzigd door twiekert op 07-01-2005 21:47 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:31

Creepy

Tactical Espionage Splatterer

troxx schreef op vrijdag 07 januari 2005 @ 20:39:
Hierin staat de prijs per object.
Nu moet ik dus in dit geval in mysql dus de volgende bewerkingen doen, waar ik niet uitkom.
Het gaat om een select query

- object 2: 3 * prijs van object_id 2
- object 5: 2 * prijs van object_id 5
- object 8: 4 * prijs van object_id 8

plus dat ik graag nog een subtotaal terug zou krijgen.
maar dat zou eventueel ook in php kunnen.

wie zou mij heer even mee kunnen helpen, ik heb de search al geprobeerd en kijk de hele avond al tegen mislukte queries aan. Ook google heb ik geprobeerd.
k snap je probleem echt niet. Je weet de aantallen en in MySQL staan de prijzen. Die haal je op, dat vermenigvuldig je met de aantalen en je hebt je totalen.

Er zijn erg veel PHP/MySQL tutorials te vinden die je vertellen hoe data op te halen uit een MySQL database en te gebruiken in PHP. Het gebruik van variabelen en het vermenigvuldigen van getallen acht ik hier echt basis kennis, dus ook dat moet geen probleem zijn lijkt me.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.