Jens: letzten Eintrag in einer Datenbank anzeigen oder nutzen

Hallo,

ich habe ein mysql-db ... alle einträge werden mit einer id gespeichert. ich möchte jetzt aber nur den letzten eintrag nutzen.

die mysqlabfrage hab ich jetzt so:

$result=mysql_query("select * from tabelle_user ORDER BY id desc");

aber er zeigt mit trotzdem alle einträge die in der db stehen an.

kann mir jemand kurz helfen?

mfg
jens

  1. Moin!

    $result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1");

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Moin!

      Halt! Was fehlt? Die Fehlerbehandlung!

      $result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1");

      $sql="select * from tabelle_user ORDER BY id desc LIMIT 1";
      $result=mysql_query($sql) or die (mysql_error()."<hr>".$sql);

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
      1. achso ... sollte ich vielleicht noch erwähnen. es halndelt sich dabei um eine emailfunktion.
        das heisst der soll eine email an den eintrag mit der letzten(höchsten) id versenden

        Quellcode:
        mysql_connect($dbhost,$dbuser,$dbpass);
        mysql_select_db($db);
        mysql_query("insert into tabelle_user
        (emailadresse_anmeldung,nickname_anmeldung,passwort)
        values
        ('$_POST[emailadresse_anmeldung]','$_POST[nickname_anmeldung]','$_SESSION[passwort]')
        ");
        $result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1");

        session_destroy();
        ?>

        <html>
        <head>

        <link rel="stylesheet" type="text/css" href="css/creamore_css_by_jk.css">
        <title>Anmeldung erfolgreich</title>
        </head>

        <body>
        <center>

        <?php

        while($rs=mysql_fetch_object($result))
        {
        mail("$rs->emailadresse_anmeldung", "Ihre Anmeldung und ihr vorläufiges Passwort", "Vielen Dank für ihre Anmeldung. Sie erhalten mit dieser Email ihr vorläufiges Passwort. Bitte loggen sie sich ein und ändern sie ihr Passwort in Ihrem Profil \n
        Emailadresse: $rs->emailadresse_anmeldung\n
        Nickname: $rs->nickname_anmeldung\n
        Passwort: $rs->passwort\n\n
        ");
        }
        ?>

        mfg
        jens

        1. Moin!

          Schon wieder!
          mail(...) or die ("Mailversand fehlgeschlagen.");
          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          1. also ... der mailversand funktioniert ... das geht alles .. er sendet halt immer alle einträge die in der db stehen

            er soll halt wie gesagt nur an den letzten eintrag ... die höchste id die drin steht senden.

            mfg
            jens

        2. Hallo Jens,

          mysql_query("insert into tabelle_user ([...]) values
          ('$_POST[emailadresse_anmeldung]','$_POST[nickname_anmeldung]','$_SESSION[passwort]')");

          Daten die von außen kommen musst du unbedingt mit mysql_escape_string() o.ä. "entschärfen".

          $result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1");

          ich vermute mal, dass du an die Adresse, die gerade eingetragen wurde, eine E-Mail schicken willst - dann ist es besser wenn du direkt nach mysql_query('INSERT...'); die Funktion mysql_insert_id() (->http://de.php.net/mysql_insert_id) aufrufst, und deren Rückgabewert in einer Bedingung für deinen Query benutzt:

          $id = mysql_insert_id();
           $query = 'SELECT email FROM tabelle_user WHERE id = '.$id;
           $rs = mysql_query($query) or die('Fehler: '.mysql_error());

          (statt "email" musst du eben die Felder die du benötigst reinschreiben - "SELECT *" ist nämlich nicht gut: http://dclp-faq.de/q/q-sql-select.html)

          Grüße aus Nürnberg
          Tobias

          --
          Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        3. Moin!

          mysql_connect($dbhost,$dbuser,$dbpass);  # Hier fehlt die Fehlerbehandlung
          mysql_select_db($db);                    # Hier fehlt die Fehlerbehandlung
          mysql_query("insert into tabelle_user
          (emailadresse_anmeldung,nickname_anmeldung,passwort)
          values
          ('$_POST[emailadresse_anmeldung]','$_POST[nickname_anmeldung]','$_SESSION[passwort]')
          ");
          $result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1"); # Hier fehlt die Fehlerbehandlung

          session_destroy();                   # Hier fehlt die Fehlerbehandlung

          while($rs=mysql_fetch_object($result))
          {
          mail("$rs->emailadresse_anmeldung", "Ihre Anmeldung und ihr vorläufiges Passwort", "Vielen Dank für ihre Anmeldung. Sie erhalten mit dieser Email ihr vorläufiges Passwort. Bitte loggen sie sich ein und ändern sie ihr Passwort in Ihrem Profil \n
          Emailadresse: $rs->emailadresse_anmeldung\n
          Nickname: $rs->nickname_anmeldung\n
          Passwort: $rs->passwort\n\n
          ");    # Hier fehlt die Fehlerbehandlung

          Fürs Debugging:

          echo "Mail wurde verschickt<br>";

          }

          Vielleicht wirst Du Dich mit:

          echo mysql_num_rows()." Datensatz wurde zurückgegeben.";

          von der Funktionalität überzeugen wollen. Das Limit 1 sollte Dein Problem grundsätzlich lösen.

          Ansonsten liegt der Fehler ganz woanders.

          ?>
          <html>
           <head>
           <link rel="stylesheet" type="text/css" href="css/creamore_css_by_jk.css">
           <title>Anmeldung erfolgreich</title>
           </head>
           <body>
          <center>
          ...

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        4. Hello,

          achso ... sollte ich vielleicht noch erwähnen. es halndelt sich dabei um eine emailfunktion.
          das heisst der soll eine email an den eintrag mit der letzten(höchsten) id versenden

          Dann ist vielleicht "select last_insert_id()" besser geeignet für Dich.

          oder bei "kleinen" IDs auch mysql_insert_id()

          http://de3.php.net/manual/en/function.mysql-insert-id.php

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        5. Hi,

          mysql_query("insert into tabelle_user (emailadresse_anmeldung,nickname_anmeldung,passwort)
          values ('$_POST[emailadresse_anmeldung]','$_POST[nickname_anmeldung]','$_SESSION[passwort]') ");
          $result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1");

          while($rs=mysql_fetch_object($result))
          {
          mail("$rs->emailadresse_anmeldung", "Ihre Anmeldung und ihr vorläufiges Passwort", "Vielen Dank für ihre Anmeldung. Sie erhalten mit dieser Email

          ihr vorläufiges Passwort. Bitte loggen sie sich ein und ändern sie ihr Passwort in Ihrem Profil \n

          Wozu willst Du die Daten überhaupt erst wieder aus der Datenbank auslesen? Die stehen doch nach wie vor in $_POST drin...
          Die Session kannst Du genausogut auch nach dem Mailverschicken zerstören, so daß auch das Passwort noch in $_SESSION drin steht.

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.mud-guard.de/