Subtotaal + tekens in SQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jordi

jordi

17/09/2006 00:03:00
Quote Anchor link
hey ik heb een probleem,
ik heb een tavel 'winkel'
daar in zitten tabellen met id, naamproduct, kost,aantal,totaalprijs

nu wil ik dat als ik bijvoorbeeld 3 producten in de winkel tabel heb dat ik die drie eind bedragen in dit geval totaalprijs bij elkaar opteld en in subtotaal zet hoe doe ik dat??
wie kan mij helpen. ;)
 
PHP hulp

PHP hulp

18/11/2024 11:26:15
 
K i p

K i p

17/09/2006 00:11:00
Quote Anchor link
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
<?php

//sql voor alles selecteren in de tabel winkel
$sql = "SELECT * FROM winkel;";

//voer die sql uit, en als die mislukt stop het script en geef mysql error weer
$res = mysql_query($sql) or die (mysql_error());

//maak $subtotaal aan
$subtotaal = '';

//maak een array $row aan met het resultaat van net en tel dit steeds bij subtotaal op
while ($row = mysql_fetch_array($res)) {

  //tel de totaalprijs van deze rij bij het subtotaal op
  $subtotaal += $row['totaalprijs'];

  //sluit de loop
}

//en outputten maar
echo $subtotaal; //output: het totaal van elk product in de hele tabel bij elkaar opgeteld
?>
Gewijzigd op 01/01/1970 01:00:00 door K i p
 
Jordi

jordi

17/09/2006 00:28:00
Quote Anchor link
ok het werkt tof man
 
Jordi

jordi

17/09/2006 00:29:00
Quote Anchor link
alleen SELECT * FROM winkel is niet goed er moet nog where bij where ip = $addr ;)
 
Jordi

jordi

17/09/2006 00:33:00
Quote Anchor link
en weet je meschien ook hoe ik kan zeggen van stuur gegeven naar mail adres die in die row's staan en dan ook alleen de gegeven van het ip
 
Stefan van Iwaarden

Stefan van Iwaarden

17/09/2006 00:38:00
Quote Anchor link
dat kan met mail();

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mail($email,$onderwerp,$bericht,$headers);
?>


Overigens krijg ik het idee dat je nog niet echt met php bekend bent, en of het dan verstandig is gelijk een webshop te gaan bouwen weet ik zonet nog niet.
 
Jordi

jordi

17/09/2006 00:42:00
Quote Anchor link
ik had de shop al af ik bouw website door naar andere scripts te kijken zeg maar en dus stukkjes in elkaar te zetten ;)
 
K i p

K i p

17/09/2006 00:56:00
Quote Anchor link
Quote:
ok het werkt tof man


Mooi! Geeft mij ook weer een goed gevoel :-)

Graag gedaan!
 
K i p

K i p

17/09/2006 00:59:00
Quote Anchor link
Oja, als je dus mail wilt, kun je dit eronder zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$bericht
= 'Er is een bestelling geplaatst door ip '.$addr.' En dit is het subtotaal: '.$subtotaal.' Veel plezier met de bestelling :-)';
mail('[email protected]','Bestelling',$bericht);
?>
 
Jan Koehoorn

Jan Koehoorn

17/09/2006 08:13:00
Quote Anchor link
@ Boris: jouw manier werkt, maar is omslachtig. Je haalt met * alle velden op, terwijl je er maar 1 nodig hebt. Bovendien heb je geen aparte variabele nodig in PHP om alles op te tellen; dat kun je gewoon met MySQL doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    $sql
= "
        SELECT SUM(prijs) AS totaal
        FROM tabel
        "
;
    if (!$res = mysql_query ($sql)) {
        trigger_error (mysql_error ());
    }

    else {
        $row = mysql_fetch_assoc ($res);
        echo '<p>Totaal: ' . $row['totaal'] . '</p>';
    }

?>
 
K i p

K i p

17/09/2006 09:02:00
Quote Anchor link
Wist ik niet, is een goede manier! Bedankt!
 
Stefan van Iwaarden

Stefan van Iwaarden

17/09/2006 11:03:00
Quote Anchor link
@Jan, ik ken die manier ook wel, gebruik hem zelf ook heel vaak, maar hier gaat die denk ik niet op omdat hij ook met aantallen zit.
Ik weet niet of MySQL de prijzen maal die aantallen kan doen in zijn query?
Als dat zo is, dan zou ik die manier ook wel willen weten, dan kan ik ook nog heel wat pagina's veranderen ;)
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Jan Koehoorn

Jan Koehoorn

17/09/2006 11:11:00
Quote Anchor link
@ Stefan: geef even een tabelstructuur en wat er precies uit moet rollen?
 
Stefan van Iwaarden

Stefan van Iwaarden

17/09/2006 11:19:00
Quote Anchor link
bijv.

id | productID | prijs | aantal

en dat je dan met een query het totaal van bijv. de volgende records kunt berekenen

1 | 24 | 0.50 | 5
2 | 56 | 1.50 | 10
 
Jan Koehoorn

Jan Koehoorn

17/09/2006 11:26:00
Quote Anchor link
In 1 query is lastig, maar in 2 kan het zeker:

SELECT
product_id,
prijs,
aantal,
(prijs * aantal) AS subtot
FROM producten

geeft een lijst, en:

SELECT
SUM(prijs * aantal) AS tot
FROM producten

geeft alle subtotalen opgeteld
 
Stefan van Iwaarden

Stefan van Iwaarden

17/09/2006 11:30:00
Quote Anchor link
@Jan, de productID hoef je in je berekening natuurlijk niet te gebruiken aangezien de prijs in dit voorbeeld al gegeven is in de bestaande tabel om het iets makkelijker te maken.

Maar ik wist niet dat je SUM(prijs * aantal) in een query kon doen, ik zal dit op zeer korte termijn eens uitproberen en als het goed werkt mijn pagina's aanpassen.
 
Jan Koehoorn

Jan Koehoorn

17/09/2006 11:41:00
Quote Anchor link
Quote:
@Jan, de productID hoef je in je berekening natuurlijk niet te gebruiken aangezien de prijs in dit voorbeeld al gegeven is in de bestaande tabel om het iets makkelijker te maken.

Is hier voor de berekening niet nodig, maar als je bijvoorbeeld een lijst aan een klant wilt presenteren, wel. Overigens klopt het datamodel niet; de prijs van een product hoort in een tabel producten en deze tabel zou eigenlijk orderregels moeten heten.
Quote:
Maar ik wist niet dat je SUM(prijs * aantal) in een query kon doen, ik zal dit op zeer korte termijn eens uitproberen en als het goed werkt mijn pagina's aanpassen.

Die tweede query is vooral handig als je alleen een totaal wilt, zonder de eerste uit te hoeven voeren. Als je de eerste toch al uitvoert, kun je idd net zo goed een tellertje laten meelopen in de while loop waarin je de resultaten fetcht.
 
Jordi

jordi

17/09/2006 12:29:00
Quote Anchor link
ok heel erg bedankt allemaal ik snap het!
 
Jordi

jordi

17/09/2006 12:32:00
Quote Anchor link
het is natuurlijk ook handig om bijvoorbeeld te zeggen van "ër zijn 3 producten in uw winkelwagen"
 
Stefan van Iwaarden

Stefan van Iwaarden

17/09/2006 12:44:00
Quote Anchor link
wil je de code daarvoor weten?

die is zoiets als dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
= "SELECT COUNT(*) AS aantal FROM winkelwagen WHERE ip='".$_SERVER['REMOTE_ADDR']."'";
$result = mysql_query($query) or die (mysql_error());
$aantal = mysql_result($result,'aantal');
?>


$aantal bevat dan het aantal producten (rijen) in de winkelwagen van die persoon.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Jordi

jordi

17/09/2006 13:55:00
Quote Anchor link
ok en hoe zal ik het beste dan kunnen zeggen van klik hier om bestelling afteronden
ik heb wel wat maar dat is niet stabiel zeg maar ik moet een email stuuren naar de besteller en naar mij.
en in alle bij moet die bestelling in de mail komen.
oh ja mij winkel systeem werkt op ip dus je moet dus alles in de mail kunnen zien die hij dus verzent met zijn ip.



meschien moet ik eerst de producten in zijn winkel wagen eerst verplaatsen naar een ander tabel in de datavase iets met select all from winkelwagen where ip = $ipadd AND insert from open-orders ....
en veder weet ik het niet of dat kan !! en als het kan hoe !!

wie weet hier een oplossing voor
Gewijzigd op 01/01/1970 01:00:00 door jordi
 

Pagina: 1 2 volgende »



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.