Avatar billede pehory Nybegynder
21. februar 2005 - 19:17 Der er 3 kommentarer og
1 løsning

Mail() sender kun til én email

Hej eksperter

Jeg stiller dette spørgsmål lidt i forlængelse med http://www.eksperten.dk/spm/591971
Mit problem er at den kun sender én mail der hvor den henter emails fra db'en. Den mail med højest id.

Her er koden. Håber i kan finde fejlen:
<?
include ("mysql.php");
$foresp = mysql_query("select* from bestilling order by id desc limit 0, 1");
while($data = mysql_fetch_array($foresp)){
include ("tegn.php");

echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"contenttable\">
        <tr>
          <td><h1>$data[overskrift]</h1></td>
        </tr>
        <tr>
          <td><h2>".nl2br($data['tekst'])."<br><br><br></h2></td>
        </tr>
      </table>";
}
?><br>
<?php

    session_start();

    if (isset($_POST['send']))
    {
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= "From: Hans Hansen <hans@hansen.dk>\r\n";

        include ("mysql.php");
        $res = mysql_query("select email from emails where brug = '2' order by id desc") or die(mysql_error());
        $row = mysql_fetch_row($res);
        $to = $row[0];
        $text  = 'Så er der kommet en nye ordrer.<br><br><b>Kundeoplysninger:</b><br>Navn: ';
        $text .= $_POST['navn'];
        $text .= '<br>Adresse: ';
        $text .= $_POST['adresse'];
        $text .= '<br>By: ';
        $text .= $_POST['by'];
        $text .= '<br>Postnr: ';
        $text .= $_POST['postnr'];
        $text .= '<br>Telefon: ';
        $text .= $_POST['tlf'];
        $text .= '<br>Email: ';
        $text .= $_POST['email'];
        $text .= '<br><br><b>Kunden har bestilt følgende varer:</b><br>';

        if (!empty($_SESSION['varer']))
        {
            $totalsum=0;
            foreach( $_SESSION['varer'] as $vareid => $antal )
            {
                if ( $antal > 0 )
                {
                    $res = mysql_query("SELECT * FROM varer WHERE id = '". $vareid ."'");
                    $row = mysql_fetch_array($res);
                    $varesum = $antal * $row['pris'];
                    $totalsum+=$varesum;
        $text .= ' ' . $antal . ' x ' . $row['navn'] . ': ' . $varesum . " kr.<br>";
                }
            }
        $text .= "<br><b>Ialt: $totalsum kr.</b>";
        }
       
    $to2 = $_POST['email'];
    $text2  = 'Hej ';
    $text2 .= $_POST['navn'];
        $text2 .= $_POST['navn'];
        $text2 .= '<br>Adresse: ';
        $text2 .= $_POST['adresse'];
        $text2 .= '<br>By: ';
        $text2 .= $_POST['by'];
        $text2 .= '<br>Postnr: ';
        $text2 .= $_POST['postnr'];
        $text2 .= '<br>Telefon: ';
        $text2 .= $_POST['tlf'];
        $text2 .= '<br>Email: ';
        $text2 .= $_POST['email'];
        $text2 .= '<br><br><b>Du har bestilt følgende varer:</b><br>';

        if (!empty($_SESSION['varer']))
        {
            $totalsum=0;
            foreach( $_SESSION['varer'] as $vareid => $antal )
            {
                if ( $antal > 0 )
                {
                    $res = mysql_query("SELECT * FROM varer WHERE id = '". $vareid ."'");
                    $row = mysql_fetch_array($res);
                    $varesum = $antal * $row['pris'];
                    $totalsum+=$varesum;
        $text2 .= ' ' . $antal . ' x ' . $row['navn'] . ': ' . $varesum . " kr.<br>";
                }
            }
        $text2 .= "<br><b>Ialt: $totalsum kr.</b><br><br><br>Med venlig hilsen<br>Hans Hansen";
        }
        mail($to, "Ny ordre", $text, $headers);
        mail($to2, "Ordre bekræftelse", $text2, $headers);
        echo '<h2>Ordren er gennemført<br></h2>';
    }
 
?>
Avatar billede Slettet bruger
21. februar 2005 - 20:08 #1
Ja? Hvad var det meningen, at den skulle gøre?
Avatar billede pehory Nybegynder
21. februar 2005 - 20:11 #2
Den skal sende en email til alle der ligger i tabellen emails som har brug = '2'
+ at den selvfølgelig skal sende en mail til emailen angivet i formen 'email'
Det der sker er at den kun sender til den email med højest id og til kunden (den der er skrevet i form)
Avatar billede Slettet bruger
21. februar 2005 - 20:24 #3
Ret

        $row = mysql_fetch_row($res);
        $to = $row[0];

til

        $to=array();
        while($row = mysql_fetch_row($res)){
          $to[] = $row[0];
        }
        $to=implode(',',$to);
Avatar billede pehory Nybegynder
21. februar 2005 - 20:54 #4
Jeg takker for hjælpen. Virker lige efter hensigten.
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