Detta var ju en bra fråga... Jag vet hur du kan göra detta genom att kombinera två frågor...
// ta reda på antal rader i tabellen...
$sql = "SELECT COUNT(*) FROM din_tabell";
$query = mysql_query($sql);
$result = mysql_fetch_array($query);
mysql_free_result();
// läs databasen igen med början från sista raden
$sql = "SELECT * FROM din_tabell LIMIT ($result - 1), 10";
$query = mysql_query($sql);
$result_1 = mysql_fetch_array($query);
mysql_free_result();
Så länge man har en räknarkolumn eller datum/tid-fält att sortera på borde det inte vara något problem att få till i en fråga för att få ut den senast inlagda posten.
SELECT * FROM dintabell ORDER BY ID-kolumn DESC LIMIT 1, 1
Jag tror att lösningen finns i @nders svar, men jag har inte testat än.
Vad jag menar LarsG är att jag har en tabell som innehåller bla. en ID-kolumn, jag vill få ut senaste registrerade posten mao. den post som har högst ID.
Hoppas att detta var mer korrekt formulerat och förståeligt.
jag vill få ut senaste registrerade posten mao. den post som har högst ID.
Det behöver inte vara samma sak. I vissa lägen och beroende på tabelltyp så kan mysql återutnyttja id för poster som har blivit borttagna. Det kan också ske andra insert i samma tabell efter din insert och innan din select.
I mysql finns funktionen
last_insert_id()
som returnerar det id som senast lagrade post fick
q = "insert ..."
connect.execute q,,128
set rs = connect.execute("select last_insert_id()")
newid = rs(0)
Det är det enda säkra sättet att få tag på senaste genererade värdet för en auto_increment kolumn.
Om du vill ha posten med högst id så fungerar @nders kod med en liten modifikation
SELECT * FROM dintabell ORDER BY IDkolumn DESC LIMIT 0, 1
Du måste ha något att sortera efter, lämpligen ett tidsfält av formatet TIMESTAMP eller DATETIME. Kanske har du redan ett sådant, isåfall kan du använda det.
Låt oss kalla tidsfältet för 'time'.
Vill du få fram sista posten som lagts till (insert) eller ändrats (update) så använder du TIMESTAMP. Du ska inte tilldela TIMESTAMP-fältet något värde när du gör dina insert eller update, det fixar TIMESTAMP-fältet själv.
Är det endast när posten lagts till du vill sortera efter så använder du DATETIME. då får du ge fältet värdet now() vid insert.
Sen hämtar du sista post som visats tidigare:
SELECT * FROM dintabell ORDER BY time DESC LIMIT 0, 1