Vybrání a čtení složitějších údajů z db - konzultace

zdravím!

nad tímhle jsem dělel celý odpoledne a až teď večer se mi to podařilo rozchodit ... jde mi o tohle

mám v db uložené novinky tak, že ta nejnovější má nejvyšší ID ... potřebuju vypsat na stránku 10 nejnovějších a na zápatí dát odkazy na ty další ... rozumíte, o co mi jde? :-)

tak a teď jsem vykoukaml ten zdroják, funguje dobře, ale nezdá se mi, že je to optimální řešení:

využívám $i tak, že nejdříve sečtu všechny novinky a pak od tohoto počtu odečítám $i a tak získávám $id, kdy $id je nejvyší možná a $i je zároveň nejnižší možná - viz zdroj

pak ke každému id vyberu z darabáze danou novinku - ¨pokud ale chci mít na stránce 10 novinek, musim z db vybrat 10x údaje - zdá se mi, že tak zybtečně zatěžuju db, co vy na to?

<?
require "sprava/mysql_config.php";

$vyber_novinku = MySQL_DB_Query ($mysql_databaze, "SELECT * FROM novinky ORDER BY id", $spojeni);

$celkem = MySQL_Num_Rows ($vyber_novinku);

if (!$pozice) $pozice = 0;

for ($i=$pozice; $i<(5+$pozice); $i++):
?>

<? if (($celkem - $i) > 0) { ?>
<table border="1">
<tr>
<td>
<?
$id = $celkem - $i;
$vyber_novinku = MySQL_DB_Query ($mysql_databaze, "SELECT * FROM novinky WHERE id = '$id'", $spojeni);
$cti_novinku = MySQL_Fetch_Array ($vyber_novinku);
echo $id;
echo "<br>";
echo $cti_novinku["novinka"];
echo "<br><br><br>";

?>
</td>
</tr>
</table>
<br>

<? } ?>

<? endfor; ?>


jsem si skoro jsitej, že existuje i jiný řešení, kdy z db vyberu data jen jednou a pak je jen vhodně čtu . bude to zřejmě kombinace cyklů ... za boha jsem ale nepřišel na to, jak to udělat

pokud mi to někdo poradí a napíše kus validního zdrojáku, budu mu vděčnej ... jinak budu muset použít to, co jsem napsal - viz zdroj

díky paskal
<HTML><i>mám v db uložené novinky tak, že ta nejnovější má nejvyšší ID ... potřebuju vypsat na stránku 10 nejnovějších a na zápatí dát odkazy na ty další ... rozumíte, o co mi jde? :-)</i>

Jak presne to mas jsem necetl,ale mas to nejak slozite takze:

SELECT * FROM tabulka ORDER BY id DESC LIMIT $od,10

for($i=0;$i<$pocet_radku*10;$i+=10)
echo "<a href=\"novinky.php?od=$i\">$i</a> ";</HTML>
to se mi zdá celkem podivné, funguje to?

jak funguje ta koncová klauzule v tom sql dotazu?
trosku se nad tim zamysli paskal, to co ty davas do cyklu se da vyjadrit pomoci LIMIT .. prvni argument ($pozice) znamena od kteryho radku ti sql vrati data a druhy (10) kolik tech radku bude .. uz je jasno?
zrovna včera jsem o tom takhle přemejšlel a podíval se do manuálu SQL - a takhle to opravdu jde! tím se úpně vyřeší .-) díky