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 Mitglied

    Beiträge:
    946
    Zustimmungen:
    0
    Mitglied 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! :)
     
  2. cschirmbeck

    cschirmbeck Thread Starter Mitglied

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

    cschirmbeck Thread Starter Mitglied

    Beiträge:
    946
    Zustimmungen:
    0
    Mitglied 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 Mitglied

    Beiträge:
    8.470
    Zustimmungen:
    88
    Mitglied seit:
    09.02.2003
    $output=mysql_fetch_array($ergebnis)

    Heisst es nicht

    $output=mysql_fetch_row($ergebnis)
     
  5. Arclite

    Arclite Mitglied

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

    k33k Mitglied

    Beiträge:
    370
    Zustimmungen:
    1
    Mitglied 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
     
  7. cschirmbeck

    cschirmbeck Thread Starter Mitglied

    Beiträge:
    946
    Zustimmungen:
    0
    Mitglied 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 Mitglied

    Beiträge:
    3.099
    Zustimmungen:
    92
    Mitglied 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 Mitglied

    Beiträge:
    946
    Zustimmungen:
    0
    Mitglied 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 Mitglied

    Beiträge:
    946
    Zustimmungen:
    0
    Mitglied 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...
Ähnliche Themen - Hilfe $wert $output[x]
  1. John_M
    Antworten:
    7
    Aufrufe:
    425
  2. dayto
    Antworten:
    11
    Aufrufe:
    2.395
  3. Lerak
    Antworten:
    7
    Aufrufe:
    1.876
  4. Kenjin
    Antworten:
    9
    Aufrufe:
    1.904
  5. leo-magic
    Antworten:
    2
    Aufrufe:
    769
  1. Wir verwenden Cookies, weil diese die Bereitstellung unserer Dienste für dich erleichtern und dich z.B. nach der Registrierung angemeldet halten.