Avatar billede steenolsen1 Nybegynder
25. juli 2005 - 10:39 Der er 9 kommentarer og
1 løsning

Forkerte oplysninger sendes via mail

Hej,

I min webshop sendes der automatisk en mail til mig, når en ny ordre er gået igennem. I forbindelse med implementering af en produktkonfigurator, ønsker jeg at få tilføjet kundernes valg af konfigurationer på en ny linie lige under hovedvaren. Det fungerer fint nok, når jeg udskriver til skærm, men i min mail sendes kun de konfigurationer, der har med den sidste vare at gøre, og disse konfigurationer står ud for alle varerne - dvs sidste varens konfiguration overskriver alle de andre varers konfigurationer.

Kan I følge mig?

Herunder er scriptet, der definerer varekurven til senere brug i mail():

        // Definerer bestillingen
        include("admin/connect.php");
        $bestilling = "$shoptekster[antal]\t\t$shoptekster[varetekst]\t\t$shoptekster[pris_stk]\t$shoptekster[pris_i_alt]\n";
        $varer = array();
        $konfigurationer = array();
       
        $kurvensindhold = mysql_query("SELECT * FROM varekurv WHERE ordrenr = '$alinfo[ordrenr]'");
        while($kurv = mysql_fetch_array($kurvensindhold)) {
                $pris_total = $kurv[antal]*$kurv[pris];
                $q_varenavn = mysql_query("SELECT varenavn FROM varer_flex WHERE vareid = '$kurv[vareid]' AND sprogid = '$sprog'");    // Jeg tror godt du kan spare denne query væk og joine dig til den i $kurvensindhold
                $varenavn = mysql_fetch_assoc($q_varenavn);
               
                $kurv['varenavn'] = $varenavn['varenavn'];
                $varer[$kurv['id']] = $kurv;                    // Brug samme nøgle i begge arrays
               
                if($_SESSION[konfigurator] == '1') {
                        // Henter eventuelle konfigurationer
                        $q_konfemner = mysql_query("SELECT * FROM varekurv_konf INNER JOIN konfiguratoremner ON varekurv_konf.emneid = konfiguratoremner.konfemne_id WHERE varekurv_konf.id_varekurv = '$kurv[id]'");
                        while($konfemner = mysql_fetch_assoc($q_konfemner)) {
                                $konfigurationer[$kurv['id_varekurv']] = $konfemner;    // Brug samme nøgle i begge arrays
                        }
                }
        }
        mysql_close($connection);
       
        foreach($varer as $kurv) {
                if($kurv[antal] == '0.50') {        // Tager højde for ikke-antalsafhængige emner
                    $pris_total = $kurv[pris];
                } else {
                    $pris_total = $kurv[antal]*$kurv[pris];
                }

                $bestilling .= $kurv['antal']."\t\t".$kurv['varenavn']."\t\t".number_format($kurv['pris'], 2, ',','.')."\t".number_format($pris_total, 2, ',','.')."\n";
                if(!empty($konfigurationer[$kurv['id_varekurv']])) {            // Tilføj et isset() check hvis du kører strict
                        $konfemner = $konfigurationer[$kurv['id_varekurv']];
                        if($konfemner[antal] < '1') {
                            $emneantal = '';
                            $emneantal_beregning = 1;
                        } else {
                            $emneantal = number_format($konfemner[antal], 0,',','.');
                        }
                        if($konfemner[pris] > '0') {
                            $pris = number_format($konfemner[pris], 2,',','.');
                        } else {
                            $pris = '';
                        }
                        if(($pris*$emneantal) > '0') {
                            $pris_ia = number_format(($pris*$emneantal), 2,',','.');
                        } else {
                            $pris_ia = '';
                        }
                        if($emneantal_beregning == 1) {                                // Overstyrer beregningen ovenfor, så prisen ikke bliver halveret (antal = 0.50)
                            if(($pris*$emneantal_beregning) > '0') {
                                $pris_ia = number_format(($pris*$emneantal), 2,',','.');
                            } else {
                                $pris_ia = '';
                            }
                        }
                        $bestilling .= $emneantal."\t\t".$konfemner[emnenavn]."\t\t".$pris."\t".$pris_ia."\n";
                }
        }
Avatar billede phhepl Nybegynder
25. juli 2005 - 16:44 #1
Prøv at smide koden op som en .phps fil (husk at fjerne passwords o.lign.).
Avatar billede steenolsen1 Nybegynder
25. juli 2005 - 16:49 #2
Øhh.... ikke helt med?
Avatar billede phhepl Nybegynder
25. juli 2005 - 17:28 #3
Hvis du tager din kode og gemmer den som en .phps fil på serveren. Så kommer der automatisk syntaks, og det bliver meget nemmere at overskue.

Du skal bare huske at fjerne evt. passwords da de også vil blive vist.

/phhepl
Avatar billede steenolsen1 Nybegynder
25. juli 2005 - 20:33 #4
Ok - så er jeg med :-)

Du kan finde den på www.steenolsen.dk/kassen.phps
Avatar billede phhepl Nybegynder
27. juli 2005 - 09:03 #5
Ser lige :)
Avatar billede steenolsen1 Nybegynder
27. juli 2005 - 09:10 #6
Ok - tak. Spørgsmål besvares gerne :-)
Avatar billede phhepl Nybegynder
28. juli 2005 - 09:52 #7
Prøv at skal bare smide <?php i toppen og ?> (som almindelig PHP side) i bunden af filen så man får syntaks farverne med.
Avatar billede steenolsen1 Nybegynder
28. juli 2005 - 10:51 #8
Det har jeg gjort, men det virker vist ikke... Jeg kan eventuelt maile filen til dig?
Avatar billede steenolsen1 Nybegynder
29. juli 2005 - 08:22 #9
Hej phhepl,

Hvad siger du til det? Giver det mening :-) ?
Steen
Avatar billede steenolsen1 Nybegynder
31. juli 2005 - 15:50 #10
Nå... Jeg lukker og opretter spørgsmålet påny.
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