Är lite dålig på PHP, men i SQL löser man väl detta med:
SELECT TOP 5 FROM tabell ORDER BY id DESC
10 svar · 345 visningar · startad av Spjuthök
Hej!
Hur gör man om man vill visa de fem senaste inlagda posterna i sin Mysql databas på sin sida.
Det skulle ju gå att lösa med en for loop eller liknande. Man skulle ju kunna ge varje post ett id med autoincrement.. det jag famlar är hur man vet vilka fem som är inlagda sist.
Så som jag tänkte blir det ju de fem som har högst värde på id:t.. någon som fattar vad jag menar?
Inte så bra på detta som ni kanske förstår.
Är lite dålig på PHP, men i SQL löser man väl detta med:
SELECT TOP 5 FROM tabell ORDER BY id DESC
<?
$db = mysql_connect ("localhost", "användarnamn", "lösenord");
mysql_select_db("databasnamn",$db);
$data = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 0,5");
while($rad = mysql_fetch_row($data)) {
echo "$rad[0]";
}
mysql_close();
?>
Koden skriver ut ID-nummret på de fem senaste posterna från tabellen.
Tack .. det var denna som jag fumlade efter: mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 0,5");
Är det så man "brukar göra" när man skall göra detta. OM man typ skall visa de fem senast inlagda nyheter mm?
Precis som många andra, brukar jag göra så.
Ok .. bara undrade så att jag förstår att ni har fattat vad jag menar
Ok.. börjar känna mig tjatig
Men om jag har en databastabell som ser ut såhär:
CREATE TABLE artiklar (
a_id int(11) DEFAULT '0' NOT NULL auto_increment,
titel varchar(80),
datum datetime,
ingress text,
huvudtext text NOT NULL,
kategori int(2) DEFAULT '1' NOT NULL,
anteckningar text NOT NULL,
PRIMARY KEY (a_id)
);
Och så vill infoga de fem senast inlagda posterna från denna i en tabell som ser ut såhär:
<table width="100%" border="0">
<tr>
<td>Titeln på nyheten</td>
</tr>
<tr>
<td>Författaren | Datumet</td>
</tr>
<tr>
<td>Här kommer ingressen att komma</td>
</tr>
</table>
Hur gör jag då? Lite kod för detta skulle nog få mig att fatta
*Känner mig lite förvirrad*
<?
$db = mysql_connect ("localhost", "användarnamn", "lösenord");
mysql_select_db("databasnamn",$db);
$data = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 0,5");
while($rad = mysql_fetch_row($data)) {
?>
<table width="100%" border="0">
<tr>
<td><? echo $rad[1]; ?></td>
</tr>
<tr>
<td>Författaren | <? echo $rad[2]; ?></td>
</tr>
<tr>
<td><? echo $rad[3]; ?></td>
</tr>
</table>
<?
}
mysql_close();
?>
Stevenet
Då är väl detta enklare att följa!?
<?
$db = mysql_connect ("localhost", "användarnamn", "lösenord");
mysql_select_db("databasnamn",$db);
$data = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 0,5");
while($rad = mysql_fetch_row($data)) {
?>
<table width="100%" border="0">
<tr>
<td><? echo $rad[titel]; ?></td>
</tr>
<tr>
<td>Författaren | <? echo $rad[datum]; ?></td>
</tr>
<tr>
<td><? echo $rad[ingress]; ?></td>
</tr>
</table>
<?
}
mysql_close();
?>
Tack så mycket!
Nu fattar jag hur det ligger till.
woodi, det är möjligt att det kan uppfattas som enklare.