-
08.02.12 07:21 #1
- Registriert seit
- Jan 2005
- Beiträge
- 43
Guten morgen
ist es möglich in eine mailfunktion, eine SQL abfrage mit einzubauen?
ich habe schon etwas rumprobiert aber das einzigste was ich bekomm ist eine leere email.
oder gibt es eine möglichkeit diese abfrage mit in den $body einzubauen?PHP-Code:$header = ("From: " . $absender . "\n");
$header .= ("Reply-To: " . $empfaenger . "\n");
$header .= ("Return-Path: " . $empfaenger . "\n");
$header .= ("X-Mailer: PHP/" . phpversion() . "\n");
$header .= ("X-Sender-IP: " . $REMOTE_ADDR . "\n");
$header .= ("Content-type: text/HTML; charset=\"ISO-8859-1\"\r\n");
$subject = "Abfrage\r\n";
$abfrage = 'SELECT * from $tb_abfrage';
$query = mysql_query($abfrage, $con);
while ($w = mysql_fetch_array($query))
{
$body = "
";
}
mail($empfaenger, $subject, $body, $header);
MfG
-
Ganz normal. Hat nix mit Mail zu tun
PHP-Code:$body = $w['DeinTextfeldDasDenBodyBeinhaltet'];
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
08.02.12 19:05 #3
- Registriert seit
- Jan 2005
- Beiträge
- 43
ja genau das hab ich versucht aber das ein zigste was ich als email bekommen hab ist eine leere Seite...wenn ich aber die while schleife ohne der mailfunktion ausgebe bekomme ich ganz normal die Tabellen werte... ich versuch es einfach nochmal vielleicht hab ich ja nen fehler gemacht vielen dank für die Hilfe...=)
-
08.02.12 20:07 #4
-
Da es mehr Inhalt zu sein scheint, würde ich den Body immer erweitern ...
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
$abfrage = 'SELECT * from $tb_abfrage'; $query = mysql_query($abfrage, $con) Or die(mysql_error()); $body = ''; $log = array(); if(mysql_num_rows($query) > 0) { while ($w = mysql_fetch_array($query)) { // \n für neue Zeile $body .= $w['meineSpalte'] . "\n"; $log[] = $w['meineSpalte']; } }else { echo 'Nix da.'; } // debug!! echo '<pre>'; print_r($log); echo '</pre>'; // wuuusch mail! mail($empfaenger, $subject, $body, $header);
// Edit
Mal Code etwas ausgeschmückt ...
-
08.02.12 20:33 #6
- Registriert seit
- Jan 2005
- Beiträge
- 43
so sah es anfangs aus
PHP-Code:$anfrage = 'SELECT * from $tb_tabelle';
$query = mysql_query($anfrage, $con);
$anfragen = "SELECT `id`, SUM(gesammt) as summe from $tb_tabelle WHERE `id` = '".$_SESSION['id']."' GROUP BY `kundennr`";
$g = mysql_fetch_array($query);
$gesammt = sprintf("%01.2f", $g['summe']);
while (mysql_fetch_array($query))
{
$body = "
<table border='0' width='85%' cellspacing='0' cellpadding='0'>
<tr>
<td width='150'>
<p align='center'> </td>
<td><b>Adresse</b></td>
</tr>
<tr>
<td width='100'>Kunden Nr.:</td>
<td><font size='4'> ".$_SESSION['id']."".$_SESSION['nr']."</font></td>
</tr>
<tr>
<td width='100'>Vor- und Nachname:</td>
<td>".$_SESSION['vorname']." ".$_SESSION['name']."</td>
</tr>
<tr>
<td width='100'>Straße u. Hausnr.:</td>
<td>".$_SESSION['strasse']." ".$_SESSION['hnr']."</td>
</tr>
<tr>
<td width='100'>PLZ:</td>
<td>".$_SESSION['plz']."</td>
</tr>
<tr>
<td width='100'>Ort:</td>
<td>".$_SESSION['ort']."</td>
</tr>
<tr>
<td width='100'>e-Mail:</td>
<td>".$_SESSION['email']."</td>
</tr>
</table>
<br>
<br>
<table border='0' width='85%' cellspacing='0' cellpadding='0'>
<tr>
<td width='150'>
<p align='center'> </td>
<td><b></b></td>
</tr>
<tr>
<td width='100'>Vor- und Nachname:</td>
<td>$lname</td>
</tr>
<tr>
<td width='100'>Straße u. Hausnr.::</td>
<td>$lstrasse</td>
</tr>
<tr>
<td width='100'>PLZ</td>
<td>$lplz</td>
</tr>
<tr>
<td width='100'>Ort</td>
<td>$lort</td>
</tr>
</table>
<br>
<br>
<table border='0' width='100%' cellspacing='0' cellpadding='0'>
<tr>
<td width='20%'>".$w['wert']."</td>
<td width='10%' align='center'>".$w['menge']."</td>
<td width='20%' align='right'><font face='Times New Roman'>".$w['punkte']." </font></td>
<td width='20%' align='right'><b><font face='Times New Roman'>".$w['gesammt']."</font></b></td>
<td align=center width='30%'><b>
</tr>
</table>
<hr>
<table border='0' width='100%' cellspacing='0' cellpadding='0'>
<tr>
<td width='20%'></td>
<td width='10%'> </td>
<td width='20%'> </td>
<td width='20%' align='right'><b>
<font style='font-size: 15pt' face='Times New Roman'>$gesammt</font></b></td>
<td width='30%'></td>
</tr>
</table>";
}
-
Mit dem folgenden gehst du zwar durch die Datensätze der Tabelle. Jedoch wertest du nix aus
Nachher wertes du nur die Session aus. Die hat aber gar nix mit der Tabelle zu tun.PHP-Code:while (mysql_fetch_array($query))
Das sollte so irgendwie aussehen
PHP-Code:while ($row = mysql_fetch_array($query)) {
$body = "Dein ganzes HTML-Zeugs <b>{$row['feld1'}"
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ersetz einfach
Durch ...Code php:1
while (mysql_fetch_array($query))
Dann solltest du doch zumindest was drinnen haben, oder? Bekommst du immer nur ein Ergebnis? Ansonsten musst du dein "body" erweitern. Siehe mein Code oben.Code php:1
while ($w= mysql_fetch_array($query))
-
09.02.12 18:44 #9
- Registriert seit
- Jan 2005
- Beiträge
- 43
Hallo
Entschuldigung das ich mich jetzt erst wieder melde...
also ich hab mal etwas probiert bzw. den $body erweitert so wie du sagtest und es auch mal so übernommen wie du es geschrieben hattest aber bekomm eine leere email
MfG
-
Wer ist 'du'?
Und wie sieht dein neuer Code aus?---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
09.02.12 19:27 #11
- Registriert seit
- Jan 2005
- Beiträge
- 43
meinte Laser...
also jetzt funktioniert es,
das ganze sieht jetzt so aus
so bekomme ich die werte die ich haben möchte auch per email... ich musste den $body erweitern frage mich nur warum es vorher nicht ging als ich das von Laser kopiert hattePHP-Code:$anfrage = "SELECT * from $tb_abfrage";
$query = mysql_query($anfrage, $con) Or die(mysql_error());
$body = '';
while ($w = mysql_fetch_array($query))
{
if ($_SESSION['nr'] == $w['nr'])
{
// \n für neue Zeile
$body .= $w['gesammt'] . "<br> \n";
}
}
-
09.02.12 19:29 #12
- Registriert seit
- Jan 2005
- Beiträge
- 43
jetzt werde ich mich mal drüber machen und den ganzen HTML scheis einzubinden damit die mail auch ein layout hat und nicht alles wild herum steht...=)
Ich danke euch beiden Laser und Yaslaw
-
09.02.12 19:41 #13
- Registriert seit
- Mar 2009
- Beiträge
- 171
Das würde ja bedeuten, dass nicht die DB Abfrage , sondern bei der Mailfunktion der Haken ist. Warum benutzt Du nicht eine fertige Klasse wie z.B. MIMEMailxPHP4_V2, damit kannst Du zumindest eine Fehlerquelle weitgehend ausschließen.
-
09.02.12 19:50 #14
- Registriert seit
- Jan 2005
- Beiträge
- 43
ich hatte verschiedene mailfunktionen versucht und bei keiner ging es also so sieht derzeit meine mailfunktion aus
PHP-Code:$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/HTML; charset=iso-8859-1' . "\r\n";
$header .= "From: " . $absender . "\r\n";
$subject = "Abfrage \r\n";
$anfrage = "SELECT * from $tb_abfrage";
$query = mysql_query($anfrage, $con) Or die(mysql_error());
$body = '';
while ($w = mysql_fetch_array($query))
{
if ($_SESSION['nr'] == $w['nr'])
{
$body .= $w['gesammt'] . "<br> \n";
}
}
mail($email, $subject, $body, $header);
-
09.02.12 20:03 #15
- Registriert seit
- Mar 2009
- Beiträge
- 171
Ich sprach von einer Klasse!
Wennein korrektes Ergebnis liefert, liegt es an einer falschen Umsetzung der Nachrichtenaufbereitung.PHP-Code:while ($w = mysql_fetch_array($query)) {
if ($_SESSION['nr'] == $w['nr']) {
echo $w['gesammt'] . "<br> \n";
}
}
Deshalb der Rat: benutze eine Klasse!
Ähnliche Themen
-
Mailfunktion mit JavaScript?
Von Suchfunktion im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 24.02.06, 18:42 -
PHP Mailfunktion
Von Krankes-Kaff im Forum PHPAntworten: 11Letzter Beitrag: 29.05.04, 17:29 -
Mailfunktion php
Von fragemann im Forum PHPAntworten: 3Letzter Beitrag: 07.05.03, 15:40 -
php + mailfunktion ****?
Von ultrakollega im Forum PHPAntworten: 3Letzter Beitrag: 08.04.03, 11:47 -
PHP.ini editieren für Mailfunktion
Von Razorhawk im Forum PHPAntworten: 2Letzter Beitrag: 19.09.02, 13:17



2Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren