Zdravim,
opět bych potřeboval pomoct :-). Vymejšlim si systém, kterej mi bude zapisovat logy do databáze. Dál jsem udělal, že je možné si je prohlídnout v tabulce. Napadlo mě ale, že když tam bude moc přístupů, tak se ta tabulka bude dlouho načítat a tak jsem si ještě vymyslel takovou kravinu, která bude zobrazovat tabulku po 50 přístupech a nahoře se zobrazí odkazy na dalších 50... To jsem udělal jako <a href="stejna_stranka.php?idprispevek=1(2,3,4....)"> a tím idprispevkem se pak násobí nějaká ta podmínka třeba v cyklu.
Nejdříve jsem se pokoušel vložit do "for" ještě "while", to mi dělalo paseku a tak jsem dal do "while" "if($id>=$pocatek && $id<=$konec)". To jsem si moc nepomoh :-)). Těch prvních 50 to zobrazí, ale dál už nic :-(.
Nemohl byste mi někdo pomoct? Nemyslim, že to bude těžký, ale já holt s PHP teprv začínám. Toto je moje druhá aplikace v PHP, první byl redakční systém.
Předem dík
<?
include "db.php";
$vysledek = MySQL_Query("SELECT * FROM logovani ORDER BY datum");
$pocet = MySQL_Num_Rows($vysledek);
echo "<center><font class=cas>Zobrazit přístupy:<br>";
$pristupy = Ceil($pocet/50);
for ($x=1;$x<=$pristupy;$x++):
echo "<a href=zobrazit.php?idprispevek=$x>
" . ($x*50-49) . "-" . $x*50 . "</a>  ";
endfor;
while ($zaznam = MySQL_Fetch_Array($vysledek)):
if (!IsSet($idprispevek)) $idprispevek=1;
$pocatek = $idprispevek*50-50;
$konec = $idprispevek*50-1;
if ($id>=$pocatek && $id<=$konec):
$datum = Date("d.m.Y", $zaznam['datum']);
$id = $zaznam['id'];
$rozliseni = $zaznam['rozliseni'];
$prohlizec = $zaznam['prohlizec'];
$kam = $zaznam['kam'];
$jmeno = $zaznam['jmeno'];
if ($jmeno = "webmaster Martin Beran"):
$jmeno = "<a href='mailto:martin@v-klub.cz'>webmaster Martin Beran</a>";
elseif (!$jmeno):
$jmeno = "<p align=center><i>žádné</i></p>";
endif;
echo "<tr><td width='3%'><p>$id</p></td>
<td width='10%'><p><a href='zobrazit.php?id=$id'>$datum</a></p></td>
<td width='10%'><p>$rozliseni</p></td>
<td width='26%'><p>$prohlizec</p></td>
<td width='30%'><p style='font-size: 9px'>
<a href='$kam' target='_blank'>$kam</a></p></td>
<td width='21%'><p>$jmeno</p></td></tr>";
endif;
endwhile;
?>
za to by te mira zabil :)
pouzivej LIMIT v MySql ...
no jsou lidi, co kvuli zjisteni jednoho policka tahaji celou nekolikamegovou tabulku, takze je to hnus, ale uz me to neprekvapi :(
To je fakt, už jsem to vylepšil pomocí
$pocatek = $idprispevek*50-49;
$konec = $idprispevek*50;
MySQL_Query("SELECT * FROM logovani WHERE (id >= $pocatek) AND (id <= $konec) ORDER BY datum")
Tak co, už je to lepší? A jak jsi to myslel ty pomocí toho limitu?
PS: Ještě, že jsem to neudělal tak blbě, jak jsem to vymejšlel, to by měl mira asi radost. Je fakt, že u logování je kravina načítat celou tabulku, docela by to zdržovalo.
Precti si v SQL sekci miruv thread: k cemu slouzi limit a where v mysql
$pocatek=40;
$konec=50;
MySQL_Query("SELECT * FROM logovani LIMIT $pocatek,$konec");
toto jsem sem psat nechtel protoze nevim jestli ma id jako autoincrement.
to master: doufal sem ze ma? a taky mi to z rovna v tuto hodinu moc racinalne neuvazuje tak jsem ho nato neupozornil