Gegevens uit de database mailen met PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pim B

Pim B

14/12/2010 02:02:56
Quote Anchor link
Hoi,

Ik ben wat aan het spelen met het versturen van mails via een eigen website. Als content kan ik meegeven: gewoon tekst, html en variabelen. Maar is het ook mogelijk om gegevens uit een database het PHP-mail te versturen?
Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$query
= mysql_query("SELECT * FROM user");
    while($abc = mysql_fetch_assoc($query))
    {

        $user = $abc['user_naam'];
        echo $user."<br />";
    }

?>

Dit geeft in de browser een mooi lijstje met namen (en ja, ik heb ook geconnect en een database geselecteerd enzo, maar dat staat niet in de code). Kan ik dat lijstje ook mailen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// Mijn mailfunctie
$to = "mijnadres@mail.com;
$subject = "
testmail";
$content = ?????????
$headers = 'MIME-Version: 1.0' . "
\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "
\r\n";
?>

Het mailen zelf werkt ook, want ik heb al verschillende testmails verstuurd met tekst, html-code en variabelen als $content.
Mijn vraag is dus of het ook met databasegegevens kan.
 
PHP hulp

PHP hulp

28/01/2022 12:47:40
 
- SanThe -

- SanThe -

14/12/2010 02:12:38
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$content
= ''; // even bekendmaken
$query = mysql_query("SELECT * FROM user");
    while($abc = mysql_fetch_assoc($query))
    {

        $content .= $abc['user_naam'] . "<br />"; // data  toevoegen
    }
?>

Zo zit het in $content.
 
Pim B

Pim B

14/12/2010 14:31:46
Quote Anchor link
Het werkt! Bedankt.

Maar nu stap 2 :)

Ik wil een bestelling uit een winkelwagen mailen. Hieronder zie je het script (dat niet werkt).
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
<?php
// Hier staan $to, $subject en $content
for ($i=0; $i<count($winkelwagen); $i++)
    {

        $zoek = mysql_query("SELECT * FROM Product WHERE product_ID = '".$_SESSION['winkelwagen'][$i]."'");
        while($abc = mysql_fetch_assoc($zoek))
         {

                 $content .= $abc['prod_naam']." - ";
                 $content .= "&euro; ".number_format($abc['prod_prijs'],"2",",","")."<br />";
                           
         }
     }

// hier staat mail($to, $subject, $content, $headers);
?>

Voorlopig wil ik alleen de productnaam en de prijs in de mail zetten. $_SESSION['winkelwagen'] is een array en hij is ook gevuld. Als ik de for-statement weghaal (en dus in plaats van $i 0 of 1 of 2 invul), werkt hij wel. Ik krijg de productnaam en de prijs uit de database netjes in mijn mail.
Maar met die for-loop erbij krijg ik een lege e-mail. Wat doe ik (nou weer) fout?
Gewijzigd op 14/12/2010 14:39:38 door Pim B
 
- SanThe -

- SanThe -

14/12/2010 14:43:05
Quote Anchor link
Waar komt $winkelwagen vandaan?

Zet dit bovenin.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

//rest
?>
 
Pim B

Pim B

14/12/2010 14:56:09
Quote Anchor link
Inderdaad, ik ben stom. Was vergeten om ook in de for-statement $winkelwagen te veranderen in $_SESSION['winkelwagen'].
Nu werkt het wel. Dankje!
 



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.