Autor Zpráva
JaJco
Profil
Dobrý deň,

Neviem kam mám zaradiť moju tému ale asi sem. Inak chcel by som sa spýtať ako sa dá spraviť aby som mal dajme tomu 10 článkov na stránke a potom ďalších 10 na ďalšej, na spodok stránky by som potom dal 1 2 3 4 5..... dúfam že chápete čo som myslel.

ďakujem, JaJco
Sir Tom
Profil
JaJco:
Také dobrý den,

odkud články berete? Z databáze? Ze složky? Jestliže z databáze tak stačí v dotazu použít .... LIMIT 1, 10 (vybere se 10 prvních záznamů) nebo ... LIMIT 11, 10 (vybere se 10 záznamů od 11), ...
JaJco
Profil
áno beriem to z MySQL databázy a ďakujem už som to rozbehol :)
Piskot333
Profil *
Dobrý den,

chtěl bych se zeptat, jak potom vyřešit přechod mezi stránkami? jako např na stránce 1 je 10 článků, jak přejít na "stránku 2" a zobrazit následujících 10? Děkuji
WMPopi
Profil
Piskot333:
$radky = 10;
$start = ($_GET[stranka] - 1) * $radky;

select ... limit $start $radky

a ve funkci co ti vypisuje stránkování pak jednoduše předáváš do get /?stranka=2
Piskot333
Profil *
pořád nerozumím jak to celé zkopletovat...:(
WMPopi
Profil
Piskot333:
No, potřebuješ tedy dvě věci - udělat stránkování 1 2 3 4 .. a podle toho na jaké jsme stránce vypisovat výsledky z databáze

1/ abys udělal stránkování, potřebuješ zjistit počet výsledků
2/ ten vydělíš počtem výsledků kolik chceš na stránku a zaokrouhlíš nahoru (např. 96 výsledků = 10 stránek po 10)
3/ pak cyklem vypíšeš odkazy na jednotlivé stránky, například domena.cz/clanky.php?stranka=2
4/ v cyklu si budeš hlídat, jestli náhodou není zrovna tahle stránka v $_GET, pokud ano, místo odkazu uděláš jen text a třeba nějak zvýrazněný, aby bylo poznat, že jsem na dané stránce

a teď potřebuješ vypsat výsledky podle toho jaká stránka je v $_GET

5/ pokud v $_GET stranka není, nastavíš si, že $stranka = 1, jinak $stranka = $_GET[stranka]
6/ startovací pozice bude vždy na ($stranka - 1) * $radky // proč si snad odvodíš, neumím řečí vysvětlit :-)
7/ druhý údaj limitu odpovídá počtu výsledků, které chceme zobrazit, tedy $radky

Už?

Pak je taky potřeba myslet na to, že těch stránek mohou být stovky, tak aby se ti nevypsalo přes půl stránky jenom to stránkování, ale místo toho 1 2 3 4 5 ... 150. Případně k tomu udělat i šipky předchozí/další nebo první/poslední. Ale s tím už si určitě pohraješ, to by mohlo zabavit ;-)
Piskot333
Profil *
o díky za nástřel :) pokusím se něco stvořit, kdyby náhodou, asi se zde ještě ukážu :)
pcmanik
Profil
WMPopi:
Este treba osetrit vstupnu premennu, bohate staci intval(), alebo int
Str4wberry
Profil
Este treba osetrit vstupnu premennu, bohate staci intval(), alebo int

Proč myslíš?
Someone
Profil
Piskot333:
pořád nerozumím jak to celé zkopletovat
Zrovna jsem dodělal menší návod, jak něco takového vytvořit. Neříkám, že je to stoprocentní, ale zdá se, že to funguje.
Je to článek (jestli se tomu dá říkat nějaký článek...) stránkování v PHP. Ukázka potom zde.
Zbytek světa prosím aby mne neukamenoval za to, co jsem stvořil. Já osobně jsem spokojený, že to funguje a to mi bohatě stačí :)
pcmanik
Profil
Str4wberry:
Ak niekto namiesto cisla napise text, tak to sposobi chybu nie?
Giga
Profil *
ospravedlňujem sa hrubý offtopic, ale nedá mi to

Someone, chcem komentovať Tvoju stránku, najmä to maličké okienko, ktoré sa mi otvorí pri rozkliknutí odkazu na "Stránkovanie v PHP". Niečo tak nepohodlné som dávno nevidel.
Someone
Profil
Giga:
Jsem rád za tvou reakci přestože je taková, ale místo toho abys tu zbytečně psal (což momentálně dělám i já protože jsi neregistrovaný a nemůžu si na tebe zjistit kontakt.) sis mohl otevřít můj profil, najít si email a napsat mi.


Jinak děkuji za připomínku, malinko to zvětšim.
Giga
Profil *
Someone

Nabudúce písnem mejla, teraz dokončím rozpravu tu, keď som ju tu začal.

Nesmierne ma teší, že si sa k mojej poznámke postavil takto, pretože takto bola myslená - poskytnúť
"spätnú väzbu".
Keď som si svoju poznámku teraz znovu prečítal, vyznieva torcha jedovato. O to väčší máš u mňa rešpekt, že si to bral ako konštruktívnu kritiku.

Ostatným sa ospravedlňujem za odbočenie od témy.

:)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0