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>
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?