Strankovanie – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Strankovanie – PHP – Fórum – Programujte.comStrankovanie – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jozefe
~ Anonymní uživatel
2 příspěvky
15. 12. 2007   #1
-
0
-

mam strankovanie a chyba je v tom ze mam limit 10 a ked je 11 sa neuroby nova strnaka az ked budem mat 20 prispevkou a vobec sa mi to neprepina na ine stranky neviem preco prosim poradte tu mate kusok scriptu v ktorom je asi niekde chyba

<?php

if(isset($_GET['id'])){ // zistime ci sa nachadziv get id.
$id=(int)$_GET['id'];
?>

<?php
// zadefinovanie pocet zaznamov na jednu stranku
$pocet = 10;

// prevezme z GET cislo strany
$pg = 0;
if (isset($_GET['pg'])) $pg = abs(intval($_GET['pg']));

// nadviazanie spojenia s databazou
require "../db.php";

$res_pocet = mysql_query("SELECT count(*) / ".$pocet.".0 AS id FROM diskusie_prispevky WHERE id_temy=$id") or die(mysql_error());
$pocetstran = mysql_result($res_pocet, 0, 0) - 1;
if ($pg > $pocetstran) $pg = 0;
?>

<?php
// zaciatok vypisu prispevkov.
require "../db.php";

$vyber=mysql_query("SELECT * FROM diskusie_prispevky,diskusie_temy,users WHERE diskusie_prispevky.id_temy=$id and diskusie_prispevky.id_temy=diskusie_temy.id_temy and users.user_id=diskusie_prispevky.user_id LIMIT ".$pocet." OFFSET ".($pg * $pocet).""); // udelame select s tabulky posta.


a vypisanie jednotlivych straniek mam tu

<?php

// lavy navigator
$spat = '<< Spät';
if ($pg > 0) {
$spat = '<a href='.$_SERVER['REQUEST_URI'].'&pg='.($pg - 1).'" title="Spät">'.$spat.'</a>';
}
echo $spat.' | ';

// jednotlive strany
for ($i = 0; $i <= $pocetstran; $i++) {
if ((($i > $pg - 5) && ($i < $pg + 5)) || ($i == 0) || ($i == $pocetstran)) {
// nahrada cisel skrytych stranok za bodky
$bodky_l = '';
$bodky_p = '';
if (($i == 0) && ($pg > 5)) $bodky_l = '.. ';
if (($i == $pocetstran) && ($pg < $pocetstran - 5)) $bodky_p = '.. ';

if ($i == $pg) {
echo '<span style="color: #00aaff; font-size: 130%">'.($i + 1).'</span> '; // aktualnu stranku zvyrazni inou farbou
} else {
echo $bodky_p.'<a href="'.$_SERVER['REQUEST_URI'].'&pg='.$i.'" title="Strana '.($i + 1).'">'.($i + 1).'</a> '.$bodky_l;
}
}
}

// pravy navigator
$dalsie = 'Dalšie >>';
if ($pg < $pocetstran) {
$dalsie = '<a href="'.$_SERVER['REQUEST_URI'].'&pg='.($pg + 1).'" title="Dalšie">'.$dalsie.'</a>';
}
echo '| '.$dalsie;
?>

Nahlásit jako SPAM
IP: 78.52.77.–
Reklama
Reklama
hrach
~ Redaktor
+1
Boss
16. 12. 2007   #2
-
0
-

nemuzu nektere casti tveho kodu pochopit, proto ti napisu dva mozne principy strankovani:

x - pocet prispevku
p - stranka

1)
- limit nastavis na x+1
- pokud dostanes vsech x+1 radku, tak existuje dalsi stranka
- predchozi stranka existuje, jen pokud je p>1
- vypises jen x radku
- asi nejak takhle SQL:

select * from .... limit x+1 offset x*(p-1)
- akorát nezapomen, že tady musí být p-1!!

2)
- provedes normalni dotaz na x radku
- provedes dalsi dotaz na celkovy pocet radku, a zjistist, jestli existuji dalsi
- asi nejak takhle SQL:
select * from .... limit x offset x*(p-1)

select count(*) from ...

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
OndreJ
~ Moderátor
0
Stálý člen
16. 12. 2007   #3
-
0
-

Jozefe: v prvom dotaze na DB ($res_pocet), kde si najprv zisťuješ, koľko budeš potrebovať stránok, musíš získané číslo zaokrúhliť smerom hore! A to pmocou funkcie ceil. Pretože v dotaze zisťuješ, koľko máš v tabuľke záznamov a tieto záznamy vydelíš počtom na jednu stránku ($pocet). Tz. ak máš v DB 10 záznamov (príspevkov, článkov), tak ceil(10 / 10.0) = 1strana, ak 11, tak ceil(11 / 10.0) = 2 strany. Chápeš?

Tento prvý dotaz je tam preto, aby som zistil ten počet strán, ktoré využijem neskoršie v kóde.
Stačilo sa opýtať v diskusii pod článkom.

Nahlásit jako SPAM
IP: 213.151.246.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
16. 12. 2007   #4
-
0
-

no vyriesil som to tak ze som si urobyl vlastne a funguje :D len neviete s akym kodom mam urobyt to ze ked niekdo pride na tu stranku automaticky sa mu prehodi stranka na poslednu stranku

Nahlásit jako SPAM
IP: 78.49.203.–
Zelenáč0
Posthunter
16. 12. 2007   #5
-
0
-

To Anonymní uživatel : header()

Nahlásit jako SPAM
IP: 89.176.254.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 68 hostů

Podobná vlákna

Stránkovanie — založil jozo0025

Filter a stránkovanie — založil dasper

Php - Stránkovanie — založil Redix

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý