tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
15
ZUGRIFFE
421
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dft-killing dft-killing ist offline Mitglied Bronze
    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.

    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); 
    oder gibt es eine möglichkeit diese abfrage mit in den $body einzubauen?

    MfG
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  3. #3
    dft-killing dft-killing ist offline Mitglied Bronze
    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...=)
     

  4. #4
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    Zitat Zitat von dft-killing Beitrag anzeigen
    ja genau das hab ich versucht aber das ein zigste was ich als email bekommen hab ist eine leere Seite
    Wie sah denn der dazugehörige Quellcode aus?
     

  5. #5
    Laser Laser ist offline Mitglied Bronze
    Registriert seit
    Nov 2002
    Beiträge
    28
    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 ...
    dft-killing bedankt sich. 

  6. #6
    dft-killing dft-killing ist offline Mitglied Bronze
    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'>&nbsp;</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'>&nbsp;</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%'>&nbsp;</td>
            <td width='20%'>&nbsp;</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>"
    ;

     

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Mit dem folgenden gehst du zwar durch die Datensätze der Tabelle. Jedoch wertest du nix aus
    PHP-Code:
    while (mysql_fetch_array($query)) 
    Nachher wertes du nur die Session aus. Die hat aber gar nix mit der Tabelle zu tun.
    Das sollte so irgendwie aussehen
    PHP-Code:
    while ($row mysql_fetch_array($query)) {
        
    $body "Dein ganzes HTML-Zeugs <b>{$row['feld1'}"

    dft-killing bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    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

  8. #8
    Laser Laser ist offline Mitglied Bronze
    Registriert seit
    Nov 2002
    Beiträge
    28
    Ersetz einfach
    Code php:
    1
    
    while (mysql_fetch_array($query))
    Durch ...
    Code php:
    1
    
    while ($w= 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.
     

  9. #9
    dft-killing dft-killing ist offline Mitglied Bronze
    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
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  11. #11
    dft-killing dft-killing ist offline Mitglied Bronze
    Registriert seit
    Jan 2005
    Beiträge
    43
    meinte Laser...

    also jetzt funktioniert es,

    das ganze sieht jetzt so aus

    PHP-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"


    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 hatte
     

  12. #12
    dft-killing dft-killing ist offline Mitglied Bronze
    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
     

  13. #13
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Zitat Zitat von dft-killing Beitrag anzeigen
    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...=)
    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.
     

  14. #14
    dft-killing dft-killing ist offline Mitglied Bronze
    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); 
     

  15. #15
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Zitat Zitat von dft-killing Beitrag anzeigen
    ich hatte verschiedene mailfunktionen versucht und bei keiner ging es also so sieht derzeit meine mailfunktion aus
    Ich sprach von einer Klasse!

    Wenn
    PHP-Code:
    while ($w mysql_fetch_array($query)) {  
     if (
    $_SESSION['nr'] == $w['nr']) { 
      echo 
    $w['gesammt'] . "<br> \n";
     }  

    ein korrektes Ergebnis liefert, liegt es an einer falschen Umsetzung der Nachrichtenaufbereitung.

    Deshalb der Rat: benutze eine Klasse!
     

Ähnliche Themen

  1. Mailfunktion mit JavaScript?
    Von Suchfunktion im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 24.02.06, 18:42
  2. PHP Mailfunktion
    Von Krankes-Kaff im Forum PHP
    Antworten: 11
    Letzter Beitrag: 29.05.04, 17:29
  3. Mailfunktion php
    Von fragemann im Forum PHP
    Antworten: 3
    Letzter Beitrag: 07.05.03, 15:40
  4. php + mailfunktion ****?
    Von ultrakollega im Forum PHP
    Antworten: 3
    Letzter Beitrag: 08.04.03, 11:47
  5. PHP.ini editieren für Mailfunktion
    Von Razorhawk im Forum PHP
    Antworten: 2
    Letzter Beitrag: 19.09.02, 13:17