Avatar billede the_champ Nybegynder
27. maj 2004 - 11:01 Der er 14 kommentarer og
1 løsning

while sætning i mail funktion

Jeg har denne kode som virker fint...
<?php
ob_start();

$epost = $_REQUEST["email"];
mail("$epost",
    "En hilsen",
      "Hejsa\nhvordan går det",
    "From: afsender@test.dk\nReply-to: $epost");

echo "Mail er sendt til $epost";
echo "<p>Tilbage til <a href=\"./\">artiklen</a>";

//    header("Location: accept.php");
//    exit;   

?>

problemet er at jeg skal hente nolge oplysninger fra en database, som jeg skal udskrive i en while funktion. Hvordan får man det med i email funktionen?

f.eks
        <?php
       
        while($row = mysql_fetch_array($result))
        {
        // Increment the total cost of all items
        $envariable += ($row["qty"] * $row["price"]);

        ?>
        <echo $row["envariable"];?>//hvordan får jeg sendt denne del i emailen
        <?php
            }
           
            // Display the total
            ?>
Avatar billede sukos Juniormester
27. maj 2004 - 11:04 #1
Laver før din mail() ???
Avatar billede the_champ Nybegynder
27. maj 2004 - 11:13 #2
Ja jeg ved godt at while funktionen skal længere op i koden, men det var bare for at vise et eksempel på hvad det er jeg skal have sendt med i emailen
Avatar billede detox Nybegynder
27. maj 2004 - 11:20 #3
Du kunne måske osse udtrække totalen direkte fra databasen:
SELECT sum(qty*price) AS envariable FROM tabel
Avatar billede the_champ Nybegynder
27. maj 2004 - 11:37 #4
jeg kan sagtens indsætte en enkelt variabel i koden. Problemet er at det er en løkke
Avatar billede detox Nybegynder
27. maj 2004 - 11:49 #5
Mit forslag gik bare på at hente totalen direkte i forespørgslen, men du samler jo fint variablen i denne linie:
$envariable += ($row["qty"] * $row["price"]);
Den kan du jo indsætte i din besked således:

mail("$epost",
    "En hilsen",
      "Hejsa\nhvordan går det\nDen samlede pris er $envariable",
    "From: afsender@test.dk\nReply-to: $epost");
Avatar billede the_champ Nybegynder
27. maj 2004 - 12:04 #6
ja men der er jo flere priser. Det er derfor der er en while sætning
Avatar billede detox Nybegynder
27. maj 2004 - 12:11 #7
Arh, ok. Du kan samle det i en variabel vha. Fx:
$variabel .= $row['qty']." á ".$row['price']." kr."." ialt: ".($row['qty']*$row['price'])." kr. ".$row['envariable']."\n";
Avatar billede detox Nybegynder
27. maj 2004 - 12:13 #8
Altså på samme måde som du bruger: +=
kan du bruge: .=
når det drejer sig om string variabler.
Avatar billede the_champ Nybegynder
27. maj 2004 - 12:15 #9
vil du ikke prøve at sætte det jeg har lavet sammen med det du har lavet. Jeg ved ikke helt hvordan
Avatar billede detox Nybegynder
27. maj 2004 - 12:17 #10
Jeg får ikke tid lige nu, men måske senere, hvis du ikke har fået det løst ;o)
Avatar billede the_champ Nybegynder
27. maj 2004 - 12:21 #11
Jeg tror ikke du har forstået hvad problemet er. Jeg kan godt finde ud at lægge tingene sammen og få skrevet det ud. Problemet er som sagt at jeg ikke kan sætte den del ind i den del her
"
mail("$epost",
    "En hilsen",
      "Hejsa\nhvordan går det\nDen samlede pris er $envariable//den del skal i en løkke da der skal hentes flere ting fra databasen",
    "From: afsender@test.dk\nReply-to: $epost");
"
Avatar billede detox Nybegynder
27. maj 2004 - 13:51 #12
Jo, jeg har forstået problemet. Det jeg mener er du skal sammensætte alt det du skal bruge fra while-løkken i en (evt. flere) variabel, som du så indsætter i din mail() funktion. Fx:

<?php
        // Lav udtræk fra databasen o.l.

        $total = 0;
        $str = "";
        while($row = mysql_fetch_array($result))
        {
        // Increment the total cost of all items
        $total += ($row["qty"] * $row["price"]);
        $str .= $row['qty']." á ".$row['price']." kr."." ialt: ".($row['qty']*$row['price'])." kr. ".$row['envariable']."\n";
        }
    $str .= "Pris ialt: ".$total." kr.\n";

    mail($epost, "En hilsen", $str, "From: afsender@test.dk\nReply-to: $epost");
?>
Avatar billede detox Nybegynder
27. maj 2004 - 14:31 #13
Du kan jo altid eksperimentere lidt med indeholdet af $str, ved at udkommentere mail() delen og så bruge:
echo nl2br($str);
indtil du er tilfreds med indeholdet.
Ellers må du beskrive lidt nærmere, hvad der mere præcist skal stå i mailen og hvad dine felter i tabellen hedder og indeholder.
Avatar billede the_champ Nybegynder
28. maj 2004 - 12:04 #14
Super det var lige det jeg manglede. Du bliver nød til at give et svar hvis du vil have point
Avatar billede detox Nybegynder
28. maj 2004 - 21:34 #15
Jep.
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