Avatar billede clausga Nybegynder
05. januar 2005 - 15:18 Der er 17 kommentarer og
2 løsninger

Lægge tal sammen til total pris

jeg har en kurv hvor der er følgene felter i (MySQL):

Pris
Antal

men hvordan for jeg den så til at regne den total pris ud...??

hvis nu man siger der er 2 stk a 299 og 5 stk a 799 hvordan får man den så til at regne det rigtig sammen ?
Avatar billede jakoba Nybegynder
05. januar 2005 - 15:25 #1
$samlet_pris = 2 * 299    + 5 * 799;  // 3000 +600 -7 = 3593.
echo $samlet_ptis
Avatar billede jakoba Nybegynder
05. januar 2005 - 15:27 #2
mand jeg kan ikke regne
$samlet_pris = 2 * 299 + 5 * 799;  // 4000 +600 -7 = 4593.
echo $samlet_pris;
Avatar billede clausga Nybegynder
05. januar 2005 - 15:27 #3
ja men hvordan får jeg tallene ind i dit eksempel de ligger jo i en database... ??
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 15:32 #4
Hent rækkerne fra databasen (select pris,antal from [db] where vare = phpvare )->lav en while løkke(slut klausul = ikke flere rækker)læg dem i nogle variable-> gang dem op med antal -> læg dem sammen -> smid dem i en ny variabel eller udskriv...
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 15:33 #5
Du mangler et id felt der er unikt for hver vare!!!
Avatar billede clausga Nybegynder
05. januar 2005 - 15:49 #6
$crtv = mysql_query("SELECT * FROM kurv WHERE ip = '$ip'");
while($row = mysql_fetch_array($crtv)) {

$pris = $row["pris"];
$antal = $row["vareid"];
$vareid = $row["vareid"];

}

det har jeg.... så vareid er id for hver enkelt vare.... hvad gør jeg så ?
Avatar billede elskermad.dk Nybegynder
05. januar 2005 - 16:04 #7
<?

$samlet = 0;

$crtv = mysql_query("SELECT * FROM kurv WHERE ip = '$ip'");
while($row = mysql_fetch_array($crtv)) {

$pris = $row["pris"];
$antal = $row["antal"];
$vareid = $row["vareid"];

$samlet = $samlet+($antal*$pris);

}

echo $samlet . "kr";

?>
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 16:12 #8
$crtv = mysql_query("SELECT * FROM kurv WHERE ip = '$ip'");
while($row = mysql_fetch_array($crtv)) {

$pris = $row["pris"];
$antal = $row["vareid"];
$vareid = $row["vareid"];
$tempPris = $pris*$antal
$samletPris= $samletPris + $tempPris
}

Det burde ligge i variablen $samletPris
Avatar billede clausga Nybegynder
05. januar 2005 - 16:17 #9
Hvis der nu er 7 vare i kurven virker den så også ?
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 16:20 #10
yep
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 16:23 #11
Ved nærmere eftertanke nej... du skal derved lave en forløkke hvor du konstruerer din sql sætning med AND udtrykket udfra $ip
eks: where $ip[0] = ip AND $ip[1] = ip
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 16:24 #12
ellers er det UNION ALL...kan ikke lige gennemskue det... prøv begge
Avatar billede clausga Nybegynder
05. januar 2005 - 16:33 #13
jeg er ikke helt med på den....kan du ikke prøve at lave et helt kode eksempel
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 16:49 #14
senere!!! men jo
Avatar billede pluth Nybegynder
05. januar 2005 - 19:07 #15
Du burde også kunne gøre sådan.

$q =  mysql_fetch_array(mysql_query("SELECT sum(pris) as sum FROM kurv WHERE ip = '$ip'"));
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 19:18 #16
ikke helt da man der kun får for en vare en gang
Avatar billede pluth Nybegynder
05. januar 2005 - 19:31 #17
Ja, jeg havde lige overset, at hver vare ikke fyldte en varelinie.
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 19:35 #18
det kunne se nogenlunde sådan her ud:

//$ip skal laves til array $ip[0], $ip[1] ... osv.
//Her i skal alle varenumrene lægges

if($taeller = count($ip > 0)){
$sql= 'select vare, pris from kurv where' . $ip[0] . '= ip AND ';
}

for ($i = 1; $i <$taeller; $i++ ){

$sql += $ip[$i] . '= ip AND ';

}

$sql += $ip[$i] . '= ip';

herved skulle du have en sql sætning der AND'ede alle varerne.
Jeg er stadig ikke sikker på at det skal være AND og ikke UNION...kig i mysql manualen. Med dette er det bare at bruge det jeg eller elskermad.dk skrev i sidste "kode" post og lave de fornødne checks, så burde det være tæt på at være der. P.S. Jeg tager forebehold for fejl, jeg har ikke prøvet at køre det
Avatar billede kasperstorm Nybegynder
05. januar 2005 - 19:39 #19
Du skal i hvert fald ikke AND'e du skal mindst OR're...hovsa
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester