letzten Eintrag in einer Datenbank anzeigen oder nutzen
Jens
- php
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
Moin!
$result=mysql_query("select * from tabelle_user ORDER BY id desc LIMIT 1");
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
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®
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
Moin!
Schon wieder!
mail(...) or die ("Mailversand fehlgeschlagen.");
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
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
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
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
echo "Mail wurde verschickt<br>";
}
echo mysql_num_rows()." Datensatz wurde zurückgegeben.";
?>
<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®
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
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