Autor Zpráva
Václav Jirovský
Profil *
Ahoj, potrebuju predelat diskusi na strankovani, protoze mam tapetu a ta uz je tam ctyrikrat pod sebou. Tady je PHP skript:
<?
require("pripoj.php");
?>
<HTML>
<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="styly.css">
<SCRIPT SRC="kontrola.js"></SCRIPT>
</HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1250">
<BODY>
<CENTER>
<br>
<FORM NAME="novy_vzkaz" ACTION="pridat.php" METHOD="post" ONSUBMIT="return kontrola(this)">
<TABLE CELLSPACING="0" CELLPADDING="2" NAME="vrch">
<TR><TD CLASS="popisky">Vaše jméno:<TD><INPUT TYPE="text" NAME="jmeno" SIZE="32">
<TR><TD CLASS="popisky">Váš e-mail:<TD><INPUT TYPE="text" NAME="email" SIZE="32" value="">
<TR><TD CLASS="popisky">Homepage:<TD><INPUT TYPE="text" NAME="web" value="http://" SIZE="32">
<INPUT TYPE="hidden" NAME="datum" VALUE="<? echo Date("d.m. Y v H:i"); ?>">
</TABLE>
<TABLE CELLSPACING="0" CELLPADDING="2" NAME="hlavni">
<TR><TD CLASS="popisky">Text zprávy: &nbsp;&nbsp;<TEXTAREA ROWS="5" COLS="30" NAME="vzkaz">Sem pište zprávu...</TEXTAREA>
</TABLE>
<TABLE CELLSPACING="0" CELLPADDING="2" NAME="tlacitka">
<TR><TD><INPUT TYPE="submit" VALUE="Odeslat"> <INPUT TYPE="reset"
VALUE="Vymazat"> </TABLE>
</FORM>
<HR><BR><BR>
<?
$dotaz = MySQL_Query("SELECT * FROM guestbook ORDER BY id DESC");
if(!$dotaz):
echo "Chyba při načítání vzkazů z databáze...";
else:
while($zaznam = MySQL_Fetch_Array($dotaz)):
$vzkaz = NL2BR($zaznam["vzkaz"]);
echo "<TABLE CELLSPACING='0' CELLPADDING='2' background-color'white' WIDTH='800' style='border: 1px solid black'>";
echo "<TR><TD CLASS='udaje'><B><A
HREF='mailto:".$zaznam["email"]."'>".$zaznam["jmeno"]."</A></B> - <A HREF='".$zaznam["web"]."' target=_blank>".$zaznam["web"]."</A> - nám <B>".$zaznam["datum"]."</B> napsal tento vzkaz:";
echo "<TR><TD CLASS='pozadi'>".$vzkaz."";
echo "<TR><TD CLASS='konec' height='2'>";
echo "</TABLE><BR><BR>";
endwhile;
endif;
?><br><BR><br><br><BR><br><br><div CLASS="popisky">Optimalizováno pro rozlišení 1024x768 a Internet Explorer 5.x ++</div>
</CENTER>
</BODY>
</HTML>

Moc děkuji za pomoc
Hugo
Profil
Zmen dotaz na tvar
MySQL_Query("SELECT * FROM guestbook ORDER BY id DESC LIMIT 0, 50");

a pak men cisla v klauzuli limit (napr. pomoci promenne v URL)
Václav Jirovský
Profil
Diky, ale ja nevim jak se v PHP pouziva napr. index.php?stranka=odkazy atd. pomohl bys mi s tim tady?
Hugo
Profil
Pokud mas odkaz napr.
index.php?pocet_zaznamu=30&start=100

Kde start je cislo prvniho zaznamu, tak muzes pouzit toto:
MySQL_Query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$_GET['start'].', '.$_GET['start']+$_GET['pocet_zaznamu']);
Václav Jirovský
Profil
A jak udelat vypocitani stranek, kdyz chci 10 prispevku na stranku?
Hugo
Profil
Nejjednodussi je pouzit ID posledniho vypsaneho prispevku. Ted nemam cas tady nic tvorit, ale snad tu nekdo napise priklad.
Václav Jirovský
Profil
Ale moc dik
mackopu
Profil
Já s úspěchem používám toto:
Nejdříve do stránky vložím pomocné proměnné a funkce -
$nastrance = 10; // kolik výpisů chceš mít na jedné stránce

$vypisu = 100; // max. počet odkazů pro listování

function Strankovani($url,$zaznamu,$od=0,$vypis=0){
//$zaznamu ...pocet stranek vyhovujících dotazu
//$od ...číslo položky od které je výsledek zobrazen , čísluje se od nuly
//$vypis ... kolikátý výpis je zobrazen/v odkaze se má zobrazit, čísluje se od nuly

global $nastrance,$vypisu,$vypis;
if($zaznamu > $nastrance):
$j=min($nastrance*$vypisu,$zaznamu-$od);
for($i=0;$i<$j;$i+=$nastrance)://$i ...jedno $i je jedna řádka z databáze, avšak ve forcyklu přibývá po $nastránce záznamech
if($vypis==$i)
$text.=" [".($i+$od+1)."-".min($od+$i+$nastrance,$zaznamu)."] ";
else
$text.=" <a href=\"".$url."vypis=".$i."\">".($i+$od+1)."-".min($od+$i+$nastrance,$ zaznamu)."</a> ";
endfor;
endif;
return $text;
}


function Vypis_strankovani($text,$od,$vypis,$zaznamu){
global $nastrance;
return $text.($vypis+$od+1)."-".min($od+$vypis+$nastrance,$zaznamu)." z ".$zaznamu;
}
Pak kdekoli (nejlépe nad výpisem příspěvků) vypíši "lištu" -
//vypíše lištu s články

$limit = "LIMIT ".($od+$vypis).",$nastrance";

$zaznamu = Mysql_result(Mysql_query("SELECT count(id) FROM guestbook"),0,0);//počet položek, které vyhovují dotazu
$lista = "<center>".Vypis_strankovani("Zobrazeno ",$od,$vypis,$zaznamu)."</center><br>";
echo $lista;//zobrazíme lištu
Pak provedu výpis záznamů z knihy seřazený od posledního příspěvku a s nastaveným limitem -
$dotaz = MySQL_Query("SELECT * FROM guestbook ORDER BY id DESC $limit");

............... atakdále
No a pod ten výpis vygeneruji odkazy pro listování -
echo Strankovani("guestbook.php?",$zaznamu,$od,$vypis);
Václav Jirovský
Profil
Co je tam $zaznamu?
Wan To
Profil
Václav Jirovský
$zaznamu by mělo být počet záznamů ve tvém guestbooku.
Václav Jirovský
Profil
Tak zkusim a dik
Václav Jirovský
Profil
Moc dik, jde to
Václav Jirovský
Profil
Chtel jsem se zeptat, nejde udelat aby se nenapsala stranka znovu do tech odkazu?
Toto téma je uzamčeno. Odpověď nelze zaslat.