Daten zeilenweise in eine Datei schreiben

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

  • Daten zeilenweise in eine Datei schreiben

    Hallo zusammen,
    ich habe ein Problem und komme nicht mehr weiter.
    Hoffentlich könnt ihr mir weiterhelfen!!

    Und zwar habe ich mehrere if-Abfragen und Ausgaben mit "echo" wie z.B.:
    PHP-Code:
    echo '<p><table align="center">
    <tr height="40"><td align="left" width="200"><b>Ihre Bestellung:</b></td>
         <td align="right" width="50"><b>Anzahl:</b></td><td align="right" width="100"><b>&nbsp;Summe:</b></td></tr>'
    ;
    if (
    $Emmentaler!=or $Amsterdamer!=or $Gouda!=or $Edamer!=or $Rigatello!=or $Maasdamer!=0){
    {echo 
    '<tr height="30"><td align="left" valign="bottom" width="200"><b>Käse:</b></td><td width="50">&nbsp;</td><td width="100">&nbsp;</td></tr>';}
    ... 
    Mit dieser Methode (die nicht sehr elegant ist - ich weiss - weil es ziemlich viele Abfragen sind) möchte ich vermeiden, wenn eine Eingabe = 0 ist, dass sie angezeigt wird. Das klappt auch wunderbar.

    Nun möchte ich quasi die gleiche(n) Ausgabe(n) als Inhalt in einer E-Mail weiterleiten.
    Um Variablen mit HTML-Text in einer E-Mail auszugeben, hab ich folgendes gemacht:
    PHP-Code:
    $mailabsender "name@adresse.net";
    $from "From: Bestätigungsmail\r\n";
    $from .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
    $betreff "Bestellung";
    $text "<p><font face=ARIAL>
    <b>Folgende Bestellung ist eingegangen:</b><br><br>
    <table align=left>
    <tr align=left><td>Käse:</td>
    <td width=100><b>
    {$Emmentaler}</b></td></tr>
    ... 
    Nur wird so halt alles angezeigt und ich weiss nicht, wie ich die if-Abfragen da mit reinbringen kann.
    Geht das irgendwie oder gibt es eine ganz andere Lösung, um nur das in der Mail anzeigen zu lassen, was als Eingabewert != 0 ist???

    Ich weiss nicht mehr weiter...

    Vielen Dank schon mal im Voraus!!!
    Grüße,
    natket

  • #2
    also, erstmal die Frage, wie du die Daten bekommst?

    ich denke mal per POST über'n Formular in dem du bestimmt lobenswerter Weise, die Formularfelder genau so genannt hast, wie die Variablen, die du in deiner if-Abfrage hast.

    und dann die Frage, ob du lediglich wissen willst, das jemand überhaupt Käse bestellt hat.

    Wenn dem so ist, kannst du in deinem Formular die Felder statt:
    name="emmentaler" etc...
    zu name="[kaese]emmentaler" etc.. umbenennen, hast dann die käsesorten fein im array $_POST['kaese'].
    Hat auch den Vorteil, dass du deinen code net mehr anfassen musst, wenn du auch mal mozarella verkaufen willst.

    danach kannst das dann etwa so lösen:

    PHP-Code:

    //kein käse bestellt 
    $bestellt 0;
    //alles durchgucken
    foreach($_POST['kaese'] as $kaese) {
      
    // logisch oder :
      // wenn eins von beiden == 1, dann $bestellt 1 sonst bestellt 0
      
      
    $bestellt |=$kaese
      
    }

    //false und true sin in php auch nur 0 (false) und !=0 (true)
    if($bestellt){
     
    // ausgabe

    für die Mail hast dann noch immer den Wert, ob nun käse bestellt wurde oder net, und kannst dann entsprechend die variable $text befüllen und musst nicht noch mal das Konditionalmonster verwenden.
    Was von beidem jetzt performanter ist, kann ich dir nicht genau sagen, aber im allgemeinen kann ein proz. besser zählen und rechnen als vergleichen.

    nebenbei: wo schreibst du daten zeilenweise in 'ne Datei?

    Kommentar


    • #3
      Hi,
      erstmal danke für deine Antwort.
      Aber ich habe das etwas anders gemeint, weshalb mein Problem auch woanders liegt...

      und zwar krieg ich meine Daten über POST (nur leider hab ich das alles nicht in einem array gemacht, da ich newbie bin und es nicht hinbekommen habe und jetzt habe ich keine Zeit mehr, mich da rein zu arbeiten, da das möglichst schnell fertig werden muss) und speichere die Daten in Variablen (die jeweils die gleiche Bezeichnung haben wie die Formularfelder).

      Über die if-Abfrage gebe ich auf der Website nur die Daten aus, deren input-Wert ungleich Null ist. Das klappt auch alles wunderbar.
      Nur krieg es nicht hin, diese if-Abfrage auch in meinen "HTML-Code/Text" einzubauen, der letztlich den Inhalt der Mail ausgibt. Der sieht folgendermaßen aus, z.B.:
      PHP-Code:
      $text "<p><font face=ARIAL>
      <b>Folgende Bestellung ist eingegangen:</b><br><br>
      <table align=left>
      <tr align=left><td>Käse:</td>
      <tr><td align=left>Emmentaler: </td>
      <td align=right>
      {$Emmentaler}</td><td align=right>{$ergebnis_Emmentaler} €</td></tr>... 
      und dann folgt:
      PHP-Code:
      mail($mailabsender$betreff$text$from); 
      Deshalb dachte ich mir, ich speichere mir das, was ich auf der Website ja schon richtig ausgebe, in einer Textdatei und diese baue ich als Teilinhalt in meine Mail ein, falls das geht.
      Gibt es eine Lösung über diesen Weg mit der Textdatei oder über einen anderen Weg?

      Ich hab absolut keine Idee, was ich noch machen könnte!

      Vielen Dank im Voraus!
      natket

      Kommentar


      • #4
        also, wenn du deine daten per POST bekommst, dann sind die auch im array $_POST...

        und die if abfrage kannst auch in den text für die mail einbauen...

        schau dir mal den "." operator an...

        Kommentar


        • #5
          Wen du es so machen willst, wäre mein vorschlag: alles in eine variable speichern, die kannst du dan mit "echo" ausgeben und als mail versender

          PHP-Code:
          $text '<p><table align="center">
          <tr height="40"><td align="left" width="200"><b>Ihre Bestellung:</b></td>
               <td align="right" width="50"><b>Anzahl:</b></td><td align="right" width="100"><b>&nbsp;Summe:</b></td></tr>'
          ;
          if (
          $Emmentaler!=or $Amsterdamer!=or $Gouda!=or $Edamer!=or $Rigatello!=or $Maasdamer!=0)
          {
          $text .= '<tr height="30"><td align="left" valign="bottom" width="200"><b>Käse:</b></td><td width="50">&nbsp;</td><td width="100">&nbsp;</td></tr>';}
          echo 
          $text;
          mail($mailabsender$betreff$text$from); 
          Arbeite mit, Plane mit, Regiere mit!

          Kommentar


          • #6
            Vielen Dank für die schnelle Antwort!!!

            Hat alles super klasse funktioniert, genauso wollte ich es haben!

            DANKE!!!

            Kommentar

            Lädt...
            X