Txt Datei

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Txt Datei

    Hallo,

    ich habe ein Problem bei einer Versendung einer Bestellung. Wenn der Kunde z.B. 2 oder mehrere Artikel bestellt wird derzeit immer nur ein Artikel in der email angezeigt. Hier ist der Inhalt der email:

    Sehr geehrte(r) {titel_user} {nachname},

    Danke für Ihre Shop Bestellung!
    Hier sehen Sie in Kopie die Bestellung.

    Vorname: {vorname}
    Nachname: {nachname}
    Straße: {strasse}
    PLZ: {plz}
    Ort: {ort}
    Land: {land}
    Emailemail}
    Tel: {telefon}

    Artikelnr. Produkt Anzahl Preis Gesamtpreis
    --------------------------------------------------------------------------
    {artikel_nr} {artikel_titel} {anzahl} {einzelpreis} {gesamtpreis}


    Bestellt bei: {path}
    Refid: {refid}

    Bitte überweisen Sie in den nächsten Tagen diesen Betrag.
    Kontodaten und Zahlungsmöglichkeiten sehen Sie in Ihrem
    Kundenbereich.

    Mit freundlichen Grüssen
    {path}

    Und hier ist der dazugehörige Quellcode:

    $bestaetigung = join("",file("../templates/kundenbestellung_member.txt"));
    $bestaetigung = str_replace("{titel_user}",$titel_user,$bestaetigung);
    $bestaetigung = str_replace("{vorname}",$vorname,$bestaetigung);
    $bestaetigung = str_replace("{nachname}",$nachname,$bestaetigung);
    $bestaetigung = str_replace("{strasse}",$strasse,$bestaetigung);
    $bestaetigung = str_replace("{land}",$land,$bestaetigung);
    $bestaetigung = str_replace("{plz}",$plz,$bestaetigung);
    $bestaetigung = str_replace("{ort}",$ort,$bestaetigung);
    $bestaetigung = str_replace("{telefon}",$telefon,$bestaetigung);
    $bestaetigung = str_replace("{email}",$email,$bestaetigung);

    $abfrage_warenkorb = mysql_query("SELECT * FROM warenkorb WHERE uid Like '$user_id'");
    while($row = mysql_fetch_array($abfrage_warenkorb))
    {
    $artikel_nr = $row['artikelnr'];
    $anzahl = $row['anzahl'];
    $artikel_titel = $row['titel'];
    $einzelpreis = $row['preis'];

    $bestaetigung = str_replace("{artikel_nr}",$artikel_nr,$bestaetigung);
    $bestaetigung = str_replace
    ("{artikel_titel}",$artikel_titel,$bestaetigung);
    $bestaetigung = str_replace("{anzahl}",$anzahl,$bestaetigung);
    $bestaetigung = str_replace
    ("{einzelpreis}",$einzelpreis,$bestaetigung);
    $bestaetigung = str_replace("{gesamtpreis}",$geld,$bestaetigung);
    }
    $bestaetigung = str_replace("{path}",$path,$bestaetigung);
    $bestaetigung = str_replace("{refid}",$refid,$bestaetigung);
    $bestaetigung = str_replace("{bankdaten}",$bankdaten,$bestaetigung);
    mail($email,"Vielen Dank für Ihre Bestellung!","$bestaetigung","From: $path <$email_admin>");

    MFG
    Benji

  • #2
    und jetzt? was ist deine frage?

    warum verwendest du nicht code- UND php-tags ?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Wieso sollten auch mehr Reihen angezeigt werden?

      Bei jedem Schleifendurchlauf lässt du die Variablen {artikel_nr} usw. ersetzen.


      1. Durchlauf -> Allges korrekt ersetzt
      2. Durchlauf -> Kann nichts mehr ersetzen, da die Variablen schon im ersten Durchlauf ersetzt wurden und für mich nicht mehr exestieren


      Mach doch alle Artikel-Reihen in eine Variable, welche du nachher im Template ersetzt..


      Achja: Bei deiner SQL Abfrage verwirrt mich das LIKE ein bisschen
      PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

      Kommentar


      • #4
        Hallo Floriam,

        wie kann ich denn das Problem lösen?


        NFG
        Benji

        Kommentar


        • #5
          Original geschrieben von Benji
          wie kann ich denn das Problem lösen?
          in dem du die werte nicht überschreibst ...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Und wie mache ich das am besten? Könnte man die Werte nicht in ein Array einlesen so wie hier:

            $abfrage_warenkorb = mysql_query("SELECT * FROM warenkorb WHERE uid Like '$user_id'");
            $anzahl_artikel = mysql_num_rows($abfrage_warenkorb);
            while($row = mysql_fetch_array($abfrage_warenkorb))
            {
            $artikel_nr[] = $row['artikelnr'];
            $anzahl[] = $row['anzahl'];
            $artikel_titel[] = $row['titel'];
            $einzelpreis[] = $row['preis'];
            }

            MFG
            Benji

            Kommentar


            • #7
              Du hängst einfach nur die ganze Zeile mit den ganzen Daten an eine Variable dran und stellst diese dann in die E-Mail
              PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

              Kommentar


              • #8
                Ich habe es nun so gemacht:

                $liste = array();
                if($obj = mysql_query("SELECT * FROM warenkorb WHERE uid Like '$user_id'"))
                {
                while($row = mysql_fetch_assoc($obj))
                {
                array_push($liste,$row);
                }
                }
                $menge = count($liste);

                for( $i = 0 ; $i < ($menge) ; $i++ )
                {
                if( !is_array($liste[$i]) )
                {
                break;
                }
                else
                {
                $id = $liste[$i]['id'];
                $artikelnr = $liste[$i]['artikelnr'];
                $anzahl = $liste[$i]['anzahl'];
                $artikel_titel = $liste[$i]['titel'];
                $einzelpreis = $liste[$i]['preis'];

                $test = $artikelnr.$anzahl.$artikel_titel.$einzelpreis;

                $bestaetigung = str_replace
                ("{artikel_nr}",$test,$bestaetigung);
                }
                }

                Was ist daran nun falsch?

                Kommentar


                • #9
                  Man man man.


                  Auf deine Lösung will ich gar nicht eingehen *in müll steck*


                  Also:

                  Du liest ganz normal wie beim alten Script die Daten der Datenbank aus. Dann fügst du die ganzen Daten zusammen (Artikel Nr. usw.) und hängst die ganze Reihe an eine Variable dran ($article_rows o.ä.). In deiner Mail, nimmst du die ganzen einzelnden Daten der Artikel in der Tabelle raus, und fügst dort deine Variable mit den Reihen rein.
                  PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                  Kommentar

                  Lädt...
                  X