PDA

Bekijk Volledige Versie : Mysql: laatste 10 records uit tabel halen



StriKe
29/06/04, 15:15
Hallo,

Ik heb volgend 'script':
$query = mysql_query("SELECT updates_titel, updates_body, datum, tijd
from website WHERE soort = 'update' and verborgen = 'nee'") or die
(mysql_error);;

while ($Rij = mysql_fetch_array($query)) {
print("<span class=\"tussenkop\">Update uitgevoerd op " . $Rij
[datum] . " om " . $Rij[tijd] . "</span>");
print("<span class=\"tekst\"><b>" . $Rij[updates_titel] . ":</b><br
/>" . $Rij[updates_body] . "</span><br />");
}

Hiermee worden alle records waarbij de soort = "update" en verborgen =
"nee" opgehaald en afgebeeld.

Nu wil ik uit deze 'selectie' alleen de laatste tien in de rij ...
Wellicht moet ik iets aan die while lus veranderen, maar 'k weet niet
meteen hoe :-(

--
Groeten,
StriKe

http://www.internetfreakz.be

John Bokma
29/06/04, 15:25
StriKe wrote:

> Hallo,
>
> Ik heb volgend 'script':
> $query = mysql_query("SELECT updates_titel, updates_body, datum, tijd
> from website WHERE soort = 'update' and verborgen = 'nee'") or die
> (mysql_error);;
>
> while ($Rij = mysql_fetch_array($query)) {
> print("<span class=\"tussenkop\">Update uitgevoerd op " . $Rij
> [datum] . " om " . $Rij[tijd] . "</span>");
> print("<span class=\"tekst\"><b>" . $Rij[updates_titel] . ":</b><br
> />" . $Rij[updates_body] . "</span><br />");
> }
>
> Hiermee worden alle records waarbij de soort = "update" en verborgen =
> "nee" opgehaald en afgebeeld.
>
> Nu wil ik uit deze 'selectie' alleen de laatste tien in de rij ...
> Wellicht moet ik iets aan die while lus veranderen, maar 'k weet niet
> meteen hoe :-(

Laat een database het werk doen waar ie voor gemaakt is. Kijk eens naar
LIMIT in de documentatie van MySQL, en sorteren.

--
John MexIT: http://johnbokma.com/mexit/
personal page: http://johnbokma.com/
Experienced Perl programmer available: http://castleamber.com/
Happy Customers: http://castleamber.com/testimonials.html

Stefan Koopmanschap (remove withoutspam to e-mail)
29/06/04, 15:35
StriKe wrote:
> Hallo,
>
> Ik heb volgend 'script':
> $query = mysql_query("SELECT updates_titel, updates_body, datum, tijd
> from website WHERE soort = 'update' and verborgen = 'nee'") or die
> (mysql_error);;
>
> while ($Rij = mysql_fetch_array($query)) {
> print("<span class=\"tussenkop\">Update uitgevoerd op " . $Rij
> [datum] . " om " . $Rij[tijd] . "</span>");
> print("<span class=\"tekst\"><b>" . $Rij[updates_titel] . ":</b><br
> />" . $Rij[updates_body] . "</span><br />");
> }
>
> Hiermee worden alle records waarbij de soort = "update" en verborgen =
> "nee" opgehaald en afgebeeld.
>
> Nu wil ik uit deze 'selectie' alleen de laatste tien in de rij ...
> Wellicht moet ik iets aan die while lus veranderen, maar 'k weet niet
> meteen hoe :-(
>

$query = mysql_query("SELECT updates_titel, updates_body, datum, tijd
from website WHERE soort = 'update' and verborgen = 'nee' LIMIT 10") or
die (mysql_error);

met LIMIT kan je een limiet gooien op het aantal opgehaalde records. als
ik jou was zou ik eens wat SQL basics opzoeken via www.google.com want
dit is vrij basiskennis van SQL.

overigens kan je ook beter mysql_fetch_assoc() gebruiken in plaats van
mysql_fetch_array ... fetch_array haalt een dubbele array op (zowel
associatief als met id's) en fetch_assoc haalt alleen de associatieve
array op, wat zeker in dit geval meer als genoeg is.

succes


--
Stefan Koopmanschap
PHP/MySQL developer - websites, intranet and extranet systems and more...
http://www.stefankoopmanschap.com/
php@stefankoopmanschap.com

John Bokma
29/06/04, 15:45
Stefan Koopmanschap (remove withoutspam to e-mail) wrote:

> met LIMIT kan je een limiet gooien op het aantal opgehaalde records. als
> ik jou was zou ik eens wat SQL basics opzoeken via www.google.com want
> dit is vrij basiskennis van SQL.

En ORDER BY gebruiken, "laatste 10". En let op je indexen.

> overigens kan je ook beter mysql_fetch_assoc() gebruiken in plaats van
> mysql_fetch_array ... fetch_array haalt een dubbele array op (zowel
> associatief als met id's)

brrrr.

> en fetch_assoc haalt alleen de associatieve
> array op, wat zeker in dit geval meer als genoeg is.

Een hash is sowieso leesbaarder.

--
John MexIT: http://johnbokma.com/mexit/
personal page: http://johnbokma.com/
Experienced Perl programmer available: http://castleamber.com/
Happy Customers: http://castleamber.com/testimonials.html

StriKe
29/06/04, 16:05
John Bokma <postmaster@castleamber.com> schreef in
news:40e16bb2$0$883$58c7af7e@news.kabelfoon.nl:

>> Nu wil ik uit deze 'selectie' alleen de laatste tien in de rij ...
>> Wellicht moet ik iets aan die while lus veranderen, maar 'k weet niet
>> meteen hoe :-(
>
> Laat een database het werk doen waar ie voor gemaakt is. Kijk eens
> naar LIMIT in de documentatie van MySQL, en sorteren.

Wist niet dat mysql zoveel mogelijkheden had maar 't is dus bij deze wel
gelukt, thx!

--
Groeten,
StriKe

http://www.internetfreakz.be

StriKe
29/06/04, 16:05
"Stefan Koopmanschap (remove withoutspam to e-mail)"
<stefan@stefankoopmanschapwithoutspam.nl> schreef in
news:cbrqgl$30r$1@reader10.wxs.nl:

<knip>

> met LIMIT kan je een limiet gooien op het aantal opgehaalde records.
> als ik jou was zou ik eens wat SQL basics opzoeken via www.google.com
> want dit is vrij basiskennis van SQL.

Thx voor je uitleg!
Ik ben nog maar 'pas' met mysql bezig, en schrijf momenteel wat eigen
scripts op basis van de dingen die ik anderen hun scripts terug kan
vinden, en die limit was "jammergenoeg' niet tegengekomen; maar ik leer
steeds bij...

<knip>

--
Groeten,
StriKe

http://www.internetfreakz.be