Autor Zpráva
DrMizerie
Profil
Mám skript na stránkováni dat z DB, který vypíše prvních 10 údajů upraveno z Tady a pokud je tam méně jak 10 tak se nic nezobrazí a nevím proč. Nemohl by mi někdo prosím poradit?


 

Připojení k DB.....
if (!isset($_GET["celkem"])) //pokud nevíme, kolik bude záznamů tak to zjistíme...
{
$vysledek=mysql_query("select count(*) as pocet from Formular");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["pocet"];
}
else
{
$celkem=$_GET["celkem"];
}
if ($celkem>ROWS){
?> <center><h4> <?
if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"];
$vysledek=mysql_query("select * from Formular ORDER BY id DESC "." limit ".($od-1).", ".ROWS);
echo "Záznamů: ".$od."-";
echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem;
echo " z celkem $celkem&nbsp;&nbsp;&nbsp;";
//začátek - vytvoř odkaz pouze pokud nejsme na začátku
if ($od==1) echo "Začátek&nbsp;|&nbsp;";
else echo "<a href="".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=1">Začátek</a>&nb sp;|&nbsp;";
//zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS
if ($od<ROWS) echo "Předchozí&nbsp;|&nbsp;";
else echo "<a href="".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=".($od-ROWS)."">P ředchozí</a>&nbsp;|&nbsp;";
//další - vytvoř, pouze pokud nejsme v posledních ROWS
if ($od+ROWS>$celkem) echo "Následující&nbsp;|&nbsp;";
else echo "<a href="".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=".($od+ROWS)."">N ásledující</a>&nbsp;|&nbsp;";
//poslední - to je posledních (zbytek po dělení ROWS) záznamů
if ($od>$celkem-ROWS) echo "Konec&nbsp;<BR>";
else echo "<a href="".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=".($celkem-$celke m%ROWS+1)."">Konec</a><BR>";
?> </h4></center><?
}
while ($zaznam=MySQL_Fetch_Array($vysledek)):
?>
<table border="0" cellpadding="4" <?if ($sudy) echo "bgcolor=#D3E3FA"?>>
<thead>
<th colspan="1"><?echo $zaznam["Akce"]?></th><th colspan="3"><?echo $zaznam["Značka"]?> <?echo $zaznam["Typ"]?></th>
</thead>
TABULKA ..
................
</table>
<?
$sudy=!$sudy;
endwhile
Alphard
Profil
ten kód se mi zdá nepřehledný a nevím co je v ROWS
ale máš tam podmínku: if ($celkem>ROWS){ a neřešíš její nesplnění
DrMizerie
Profil
sry
define ("ROWS", 10); definuji takto to je tech 10 záznamů.
if ($celkem>ROWS){ "tady se zobrazuje stránkování kdyz je víc záznamů jak 10 tak se vytvoří stránkování to funguje.."}

Ale nechápu, když je míň záznamů v DB jak 10 tak proč:
while ($zaznam=MySQL_Fetch_Array($vysledek)):

Nezobrazuje záznamy z DB....
Dusko
Profil
Ale nechápu, když je míň záznamů v DB jak 10 tak proč:
while ($zaznam=MySQL_Fetch_Array($vysledek)):

Nezobrazuje záznamy z DB....


No pretoze tato cast:


$vysledek=mysql_query("select * from Formular ORDER BY id DESC "." limit ".($od-1).", ".ROWS);

sa nachadza vo vetve, ktora sa vykona, len ked je splnena podmienka
if ($celkem>ROWS){
DrMizerie
Profil
$vysledek=mysql_query("select * from Formular ORDER BY id DESC "." limit ".($od-1).", ".ROWS); Slouží provýpis řádků které definujem tzn.: po vytvoření odkazů na stránkování máčkneme (další, předchozí,konec nebo začátek) a tímto skriptem vypisujem definované řádky.

Jinak skript sem doplnil o podmínku:
else {
$vysledek=mysql_query("select * from Formular ORDER BY id DESC");
$zaznam=mysql_fetch_array($vysledek);
}
while ($zaznam=MySQL_Fetch_Array($vysledek)):
. . . .
. . . .

Ale nevypíše to poslední záznam DB (respektive první ORDER)
Dusko
Profil
Skus dat tuto cast kodu
if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"];
$vysledek=mysql_query("select * from Formular ORDER BY id DESC "." limit ".($od-1).", ".ROWS);

este pre zaciatok podmienky
if ($celkem>ROWS){

a vypusti cast else{
Toto téma je uzamčeno. Odpověď nelze zaslat.

0