Der folgende Code funktioniert beim Senden der Datei email-template.php korrekt. Ich möchte jetzt die Ergebnisse der SQL-Abfrage in die E-Mail-Vorlage in einer Tabelle aufnehmen, im Grunde ist es eine Liste von Anführungszeichen. Ich habe das Gefühl, str_replace
ist der Weg zu gehen, aber ein kompletter Neuling zu sein, bin ich mir nicht sicher, wie man das macht.SQL-Abfrageergebnisse zu E-Mail-Vorlage hinzufügen
<?php
include('connect.php');
include('functions.php');
$sql = "SELECT Quote FROM daily_quote Order By rand() Limit 0,10";
$result = $conn->query($sql);
$to = '[email protected]';
$subject = "Test";
$htmlContent = file_get_contents("email-template.php");
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// Additional headers
$headers .= 'From: [email protected]' . "\r\n";
// Send email
if(mail($to,$subject,$htmlContent,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
include('footer.php');
Sie sollten vermeiden einlassen die Angewohnheit, eine Wegwerf-SQL-Zeichenfolge zu deklarieren und stattdessen die Abfrage direkt in den Aufruf "query (...)" zu stellen. Dadurch werden Fehler vermieden, bei denen Sie versehentlich die falsche Abfrage ausgeführt haben. Ebenso ist der 'if (...):' Stil die [alternative Syntax] (http://php.net/manual/en/control-structures.alternative-syntax.php) und wird nicht wirklich empfohlen. – tadman
Ich sehe nichts falsches mit 'str_replace()' für diese einfache Aufgabe. Definieren Sie einen Platzhalter in der Vorlage und ersetzen Sie ihn durch die generierte Zeichenfolge, die die HTML-Tabelle enthält. Für komplexere Templates (oder wenn Sie nur Datenverarbeitung und Präsentation trennen möchten) können Sie eine Template-Engine wie Smarty, Twig oder was auch immer verwenden. –