ID aus sql-datenbank holen und als mail mitsenden...

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

  • ID aus sql-datenbank holen und als mail mitsenden...

    Hi Leute,

    ahhhhhh ist mir dieses Board schon abgegangen. Da muss ich (als Süchtiger) gleich wieder was posten. Und zwar:

    Ich erzeuge mit meiner userdaten.php 'ne Mail an meinen Rechner.
    Sieht so aus:
    <?
    $datum = date("F j, Y, g:i a");
    $zeit= date("H");
    $time= date("$zeit:i");
    $id = BEFEHL UM VORHER ERZEUGTE ID AUS DER SQL-DATENBANK ZU BEKOMMEN;
    $betreff = "Mail am $datum um $time";
    $newmail = $newmail."\n";
    $newmail = $newmail."SQL-ID: $id\n";
    $newmail = $newmail."VORNAME: $vorname\n";
    $newmail = $newmail."ZUNAME: $zuname\n";
    $newmail = $newmail."LAND: $land\n";
    $newmail = $newmail."STRASSE: $strasse\n";
    $newmail = $newmail."PLZ: $plz\n";
    $newmail = $newmail."ORT: $ort\n";
    $newmail = $newmail."Email: $email\n";
    $User = "MySite";
    mail("erichgsi@gmx.at",$betreff,$newmail,"FROM:$User");
    ?>

    Vorher speichere ich jeden User in einer my-sql datenbank ab (nur seinen Usernamen, sonst nix!). Die Datenbank erzeugt pro hinzugefüge Zeile eine ID. Und genau diese ID will ich beim Mail auf meinen Rechner mitsenden.
    Wie geht dieser php-Befehl??
    $PHP resource 4ever$

  • #2
    Kurze Bemerkung: newmail = newmail."string" kannst du auch einfach als newmail.="string" schreiben.

    Jetzt zu deiner eigentlichen Frage:
    $result = mysql_query($sql);
    $id = mysql_result($result,0);

    Wobei $sql entweder so aussehen kann:
    "SELECT id FROM users ORDER BY id DESC LIMIT 0,1"
    (könnte allerdings zeitliche Überschneidungen ergeben)

    oder auch so:
    "SELECT id FROM users WHERE email='$email'"

    oder auch um ganz sicher zu gehen (sprich falls email nicht unique ist):
    "SELECT id FROM users WHERE email='$email' AND vorname='$vorname' AND zuname='$zuname'"

    Die Feldnamen musst du natürlich noch anpassen.

    CAT Music Files

    Kommentar


    • #3
      Danke Sky.
      Stimmt das so??

      <?
      $datum = date("F j, Y, g:i a");
      $zeit= date("H");
      $time= date("$zeit:i");
      $sql = "SELECT id FROM mysiteDB WHERE username='$username'"
      $result = mysql_query($sql);
      $id = mysql_result($result,0);
      $betreff = "Mail am $datum um $time";
      $newmail = $newmail."\n";
      $newmail = $newmail."SQL-ID: $id\n";
      $newmail = $newmail."VORNAME: $vorname\n";
      $newmail = $newmail."ZUNAME: $zuname\n";
      $newmail = $newmail."LAND: $land\n";
      $newmail = $newmail."STRASSE: $strasse\n";
      $newmail = $newmail."PLZ: $plz\n";
      $newmail = $newmail."ORT: $ort\n";
      $newmail = $newmail."Email: $email\n";
      $User = "MySite";
      mail("erichgsi@gmx.at",$betreff,$newmail,"FROM:$User");
      ?>

      Was heißt eigentlich mysql_query und das ,0 bei result??
      $PHP resource 4ever$

      Kommentar


      • #4
        >Was heißt eigentlich mysql_query und das ,0 bei result??

        Hm, also ich hoffe ich bin dir nun nicht mit der Tür ins Haus gefallen... mysql_query() solltest du doch bereits bei der Eintragung des Users in die Datenbank verwendet haben oder..? Oder willst du wissen, was die Query in $sql selbst bedeutet?

        Zu deinem Code: ist mysiteDB eine Table? Oder hast du das nun nur zur Veranschaulichung eingefügt?

        Last but not least zu mysql_result():
        der zweite Parameter gibt die Spalte an.
        Würden wir also mittels "SELECT id,username" zwei Spalten holen, könnten wir mit mysql_result($result,0) den Inhalt der ersten geholten Spalte (also id) abfragen und mit mysql_result($result,1) den Inhalt der zweiten (sprich username).

        CAT Music Files

        Kommentar


        • #5
          ich wollte nur wissen was query in $sql selbst bedeutet.

          code:
          mysiteDB ist die datenbank. oder muss ich in dieser zeile den Tabellennamen verwenden??

          das mit den spalten hab ich jetzt gecheckt!
          $PHP resource 4ever$

          Kommentar


          • #6
            Ja, hier musst du den Tabellennamen verwenden. Alternativ auch SELECT id FROM datenbankname.tabellenname, falls du keine Datenbank mit mysql_use_db() explizit ausgewählt hast.

            Query-Erklärung:
            SELECT id - Hole die Spalte id

            FROM - aus der Tabelle
            mysiteDB

            WHERE - wobei nur die Spalten berücksichtigt werden, bei denen die Bedingung zutrifft:
            username='$username', also dann zum Beispiel: wo die Spalte username den Inhalt 'Klaus' hat.

            [Editiert von Sky am 29-10-2001 um 14:15]

            CAT Music Files

            Kommentar


            • #7
              danke für die erklärungen. kenn mich aus.
              paßt das im code auch wie ich's eingebaut hab??
              $PHP resource 4ever$

              Kommentar


              • #8
                na klar...

                CAT Music Files

                Kommentar


                • #9
                  schaut euch beide mal die Funktion mysql_insert_id() an!

                  IRGENDWO = Tabelle mit auto_increment auf primary key
                  Code:
                  mysql_query ("insert into IRGENDWO (IRGENDEINFELD) values (IRGENDWAS)");
                  $id = mysql_insert_id();
                  $id = Wert des primary key im gerade eingefügten Datensatz,
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    Mit allen Tücken die diese Funktion mit sich bringt - siehe UCN.

                    CAT Music Files

                    Kommentar

                    Lädt...
                    X