Hilfe! Wie $wert aus $output[x] von Tabelle?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von cschirmbeck, 17.06.2005.

  1. cschirmbeck

    cschirmbeck Thread Starter MacUser Mitglied

    Beiträge:
    941
    Zustimmungen:
    0
    MacUser seit:
    07.02.2004
    Ich stehe vor einem Problem:

    Aus zwei Datenbanken sollen Daten ausgelesen werden und dann per E-Mail verschickt werden.
    Das Verschicken funktioniert problemlos, wenn man die Daten von einem Formular über POST einfügt, denn dann definiert man ja z.B.

    $wert = $HTTP_POST_VARS["wert"];

    und setzt dann einfach $wert in den zu verschickenden Mailtext ein.

    Wenn ich nun aber von einer Tabelle auslese, dann sieht die Abfrage ja so aus:

    $abfrage = "SELECT * FROM tabelle WHERE wert1 = 'wert2' ";
    und dann
    $ergebnis = mysql_query($abfrage);
    und dann
    $output=mysql_fetch_array($ergebnis)
    und dann einfach
    $output[0]...$output[1]...$output[2] usw...

    Aber wenn man $output[x] in die Mail einsetzt funktioniert es nicht. Wenn man jedoch über printf $output[x] einsetzt, wird alles korrekt angezeigt.
    Wie kriege ich jetzt von der Tabelle die Werte als $wert ausgelesen?

    Ich müsste das Projekt bestenfalls noch heute abend fertigstellen, es geht nur noch um den Mailversand. Das komplexe Shopsystem steht schon.

    Danke! :)
     
    Zuletzt bearbeitet: 17.06.2005
  2. cschirmbeck

    cschirmbeck Thread Starter MacUser Mitglied

    Beiträge:
    941
    Zustimmungen:
    0
    MacUser seit:
    07.02.2004
    Keiner eine Idee? :(
     
  3. cschirmbeck

    cschirmbeck Thread Starter MacUser Mitglied

    Beiträge:
    941
    Zustimmungen:
    0
    MacUser seit:
    07.02.2004
    Also vereinfacht formuliert: es geht darum Daten aus einer Tabelle in eine Mail zu bekommen.
    Ich würde mich über jeden Tipp sehr freuen, dann könnte ich das Projekt abschließen... :confused:
     
  4. SchaSche

    SchaSche MacUser Mitglied

    Beiträge:
    8.509
    Zustimmungen:
    88
    MacUser seit:
    09.02.2003
    $output=mysql_fetch_array($ergebnis)

    Heisst es nicht

    $output=mysql_fetch_row($ergebnis)
     
  5. Arclite

    Arclite MacUser Mitglied

    Beiträge:
    812
    Zustimmungen:
    0
    MacUser seit:
    04.12.2003
    Zeig mal wie du den mail() befehl aufrufst.
     
  6. k33k

    k33k MacUser Mitglied

    Beiträge:
    370
    Zustimmungen:
    1
    MacUser seit:
    24.08.2003
    ich verstehe nicht ganz dein Problem.
    verstehe ich das richtig?
    - Du hast eine datei die dir werte per POST übergibt($wert).
    - mit diesen werten möchtest du eine DBAnfrage machen?
    das Ergebnis der Abfrage soll dann in eine Mail geschrieben werden und dir zugeschickt werden?

    falls ja:

    $text = "$output[0]\n$output[1] \n"; evnt. auch $text = $output[0].", ".$output[]2;
    //jetzt sollte er dir einen string gebaut haben
    $empfanger = "deine@email.de";
    mail($empfanger, "BLABLA", $text, "From: dbanfrage" );

    edit: tippfehler
     
    Zuletzt bearbeitet: 17.06.2005
  7. cschirmbeck

    cschirmbeck Thread Starter MacUser Mitglied

    Beiträge:
    941
    Zustimmungen:
    0
    MacUser seit:
    07.02.2004
    Also, die Mail an sich wird folgendermaßen verschickt:

    mail("$empfaenger", "$betreff", "$mailtext", "From: $email");

    Das Problem ist nun, dass ich den $mailtext ja definiere. Also z.B.

    $mailtext = "
    Vielen Dank für Ihre Bestellung!
    ...

    Nun werden aus einer Produktdatenbank mittels der Bestell-ID die Produkte ausgesucht, welche bestellt wurden. Die Augabe funktioniert perfekt, wenn ich das ganze als HTML ausgebe. Das sieht dann so aus:


    $abfrage = "SELECT * FROM bestellungen WHERE name = '$kundenid' ";

    $ergebnis = mysql_query($abfrage);

    // AUSGABE

    while($output=mysql_fetch_array($ergebnis))
    {
    printf("

    $output[0] $output[1] $output[2]

    ");
    }

    Aber wie bekomme ich die Daten aus der Tabelle, die mit printf und $output[x]
    so toll ausgelesen werden, in $mailtext?!?!
     
  8. mikne64

    mikne64 MacUser Mitglied

    Beiträge:
    3.097
    Zustimmungen:
    92
    MacUser seit:
    02.04.2004
    Hallo,

    ich versuch's mal, vielleicht so in die Richtung ....

    $abfrage = "SELECT * FROM tabelle WHERE wert1 = 'wert2' ";
    $ergebnis = mysql_query($abfrage);
    $nummer = mysql_numrows($ergebnis);

    $i = 0;
    while ($i < $nummer) {
    $wert = mysql_fetch_array($ergebnis);
    $name = $wert["name"];
    ... = $wert["ende"]);
    ... Jetzt kannst Du mit print-Anweisungen arbeiten ...
    $i++;
    }
    mysql_close();

    Verwendest Du PHP3? Seit PHP 4.x heißt es nämlich $wert = $_POST["wert"];

    Viele Grüße
    Michael
     
  9. cschirmbeck

    cschirmbeck Thread Starter MacUser Mitglied

    Beiträge:
    941
    Zustimmungen:
    0
    MacUser seit:
    07.02.2004
    Genau richtig!

    So hatte ich es eigentlich probiert, nur ohne \n für die Umbrüche. Ich hatte die $output[x] einfach in einen Text integriert (so nach dem Motto: Telefon:$output[4] usw - kann es daran liegen?
    Und: was meinst Du mit String? Wo liegt der Unterschied zwischen beiden Methoden?

    Folgende Schwierigkeit liegt noch vor: mittels der Kunden-ID sollen aus einer Bestellungen-Tabelle die Bestellungen dieses Kunden herausgesucht werden, d.h. es gibt mehrere Einträge. Wie bekomme ich es hin, dass diese in der Mail untereinander nach dem gleichen Muster ausgegeben werden, wie ich es mit der printf-Methode geschafft habe?

    Vielen Dank für eure Mühe! :)
     
  10. cschirmbeck

    cschirmbeck Thread Starter MacUser Mitglied

    Beiträge:
    941
    Zustimmungen:
    0
    MacUser seit:
    07.02.2004
    Also besonders den letzten Teil verstehe ich gar nicht... hast Du vielleicht ein paar Tipps, wie ich das anpassen könnte?

    Nochmals danke.
     
Die Seite wird geladen...

Diese Seite empfehlen