Pokročilé stránkování v PHP

 |  PHP pro pokročilé  |  13 615x
Pokročilé stránkování v PHP

Článek o stránkování v PHP už tu jednou byl. Ovšem po nasazení na mnohé projekty knihovna prošla jistým vývojem, proto tuto dokumentaci posouvám na první místo v seznamu článků a návod aktualizuji. Text bude pojat spíše jako návod na použití než mnohdy zbytečné komentáře k blokům kódu. Přibylo mnoho ošetření vstupů, v členských proměnných je uchováváno více dat pro pozdější použití. Tištěním kódu v šablonách se také už nebude potřeba trápit, o to se postará metoda pro převod do HTML s nastavitelným výstupem.

Nejdříve je potřeba vytvořit instanci třídy. Do konstruktoru se nastavují následující parametry:

public function __construct($total, $base = null, $limit = 0, $href_format = null);

Počet všech příspěvku, abychom věděli, kam až budeme stránkovat, základna pro generování odkazů (aktuální kategorie), po kolika stránkujeme a nakonec i formát přidaného parametru. Pro stránkovací parametr je potřeba si rezervovat proměnnou $_GET['page']. Základna je nepovinná, třída si ji umí odvodit z aktuální url. Pokud není uveden limit, je bráno 10 položek na stránku jako výchozí hodnota. Parametr $href_format je nastaven na hodnotu ?page=%s, uvádíme ho tedy pouze v případě, že ho potřebujeme změnit za &page=%s.

Pokud knihovnu nasazujeme na vícejazyčný nebo nečeský web, je potřeba i nastavit formát titulků výstupních odkazů: o to se postará metoda set_title_format(). Výchozí hodnota je "Stránka %s".

Dále už jen nastavíme typ stránkování a typ výstupu (nepovinné) a jsme vlastně hotoví. Ve finále stačí objekt jednoduše vytisknout, čímže se provede přetypování na string a magická metoda __toString() vrátí přednastavený HTML výstup.

Výstup

Stránkování lze exportovat ve čtyřech různých podobách. O nastavení se starají metody set_paging_mode() a set_output_mode(), každá z nich akceptuje nastavení 1 / 0. Ukázka:

1 | 2 | 3 | 4 | 6 (paging_mode = 0 | output_mode = 0)
1-10 | 11-20 | 21-30 | 31-40 (paging_mode = 0 | output_mode = 1)
<< < 5 > >> (paging_mode = 1 | output_mode = 0)
1 ... 5 | 6 | 7 | 8 | 9 ... 50 (paging_mode = 1 | output_mode = 1)

Při stránkování tisíců záznamů je samozřejmě vhodné použít třetí nebo čtvrtý způsob, kde cyklus pro procházení neprojíždí zbytečně všechny záznamy v poli. Zde lze navíc ještě nastavit, kolik odkazů okolo aktuálního se zobrazí. K tomu slouží metoda set_around(). Výchozí hodnota je 5, ovšem pro správné zobrazení třetího způsobu výpisu je potřeba nastavit limit na 1.

Nasazení

Vše důležité už bylo řečeno, takže nyní můžeme jít dál k ukázce kódu, který celý proces spustí. Celkový počet záznamů je potřeba spočítat SQL dotazem, protože jsem nechtěl mít knihovnu závislou ještě na databázové třídě. Po veškerém většinou nepovinné nasazení je potřeba ještě zavolat metodu set_paging(), která celý proces spustí.

$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `tabulka`"), 0);
$limit = 20;
$base = 'http://www.treba.cz/kategorie/';

// celkem | [zakladna] | [po kolika] | [format parametru]
$paging = new Paging($total, $base, $limit, '&page=%s');
$paging->set_title_format('Stránka %s'); // nepovinne
$paging->set_around(2); // nepovinne
$paging->set_paging_mode(1); // 0
$paging->set_output_mode(1); // 0
$paging->set_paging();

// vystup
echo $paging->export_paging(); // echo $paging; // $tpl['paging'] = (string)$paging;

// parametry limit pro sql dotaz:
$sql_start = $paging->get_start();
$sql_limit = $paging->get_limit();

Ukázkový SQL dotaz pro výběr záznamů

SELECT * TABULKA WHERE `sloupec` = 'podminka' ORDER BY id DESC LIMIT {$sql_start}, {$sql_limit}

Celý zdrojový kód si můžete prohlédnout nebo stáhnout:

Poznámka: text se týká PHP 5, článek byl revidován 21. 2. 2010

Facebook Twitter Google+

Komentáře k článku "Pokročilé stránkování v PHP"
Zobrazuji pouze posledních 30 komentářů.

Gravatar
Podbor 25. 3 2011, 16:05
24/53 Pátek 25. Března 2011, 16:05  |  Firefox, MAC

Zdravím,
velmi pěkné a užiteční stránkování. Nicméně měl bych k němu jeden dotaz. Chtěl jsem si změnit 4. parametrem URL a namísto "?page=%s" tam mít něco jiného. Změnit se mi to v konstruktoru podařilo, ale výsledkem bylo nefunkční stránkování, které sice házelo do url mnou definovaný klíč a hodnotu, ale nestránkovalo a tuto hodnotu z URL ani nevyhazovalo, takže když jsem potřetí klikal na "přejití na další stránku", měl jsem v URL svoji dvojici "klíč=hodnota" třikrát...
Objekt vytvářím takto:
$paging = new Paging($n_rows, NULL, 10, '&amp;gr_page=%s');
(V proměnné n_rows je počet řádků dat, která chci stránkovat).
Dělám někde chybu ?

Gravatar
Prkny 19. 1 2012, 16:55
25/53 Čtvrtek 19. Ledna 2012, 16:55  |  Firefox, Windows 7

Zdravím, velice povedené stránkování.
Rád bych se zeptal, co když chci mít url čistou ... jak přenášet parametr v SESSION ???

Gravatar
Prkny 2. 5 2012, 13:53
26/53 Středa 2. Května 2012, 13:53  |  Firefox, Windows 7

K výstupu typu 1 ... 5 | 6 | 7 | 8 | 9 ... 50 bych rád přídal další a přechozí, lidé si na to dost zvykli

Výstup by měl vypadat takto:
<předchozí 1 ... 5 | 6 | 7 | 8 | 9 ... 50 dlaší >

Něco podobného má mall

Jak to udělat ?

Gravatar
Mike 3. 6 2012, 00:18
27/53 Neděle 3. Června 2012, 00:18  |  Opera, Windows XP

@: Vždyť to tam přece je :-) Třetí řádek v tabulce "výstup" - dvojšipečka je link na první respektive poslední stránku, jednoduchá šipka je právě předchozí / následující. Akorát si to změníš.

Gravatar
Mike 3. 6 2012, 00:23
28/53 Neděle 3. Června 2012, 00:23  |  Opera, Windows XP

no to bude potřebovat upravit tu třídu. Stačí jen všude nahradit $_GET['page'] za například $_SESSION['page']. Jde ale o to, jak chceš číslo té stránky do sešny dostat, když odkaz povede vlastně na tu samou url? Spíš bych to po kliku ukládal javascriptem do cookiny a následně ajaxem přepsal obsah, který stránkuješ. Aby se to zobrazilo zase od prvního záznamu, jakmile na stránku přijdeš znovu.

Gravatar
Matěj 31. 8 2014, 11:08
29/53 Neděle 31. Srpna 2014, 11:08  |  Chrome, Windows 8.1

Většinou se vyznám v kódu aniž bych znal všechny funkce a možnosti. Mám mírně pokročilé znalosti php a chtěl bych toto stránkování použít na web, ale nevím, jak to mám aplikovat.

Gravatar
Mike 1. 9 2014, 09:50
30/53 Pondělí 1. Září 2014, 09:50  |  Opera, Windows 8.1

Ahoj Matěji, souboru class.paging.php samozřejmě rozumět nemusíš : ten udělá vše za tebe když správně nastavíš jeho zavolání - to, co je popsané v článku.

abych ti ale mohl víc pomoci, budu potřebovat alespoň nějakou ukázku kódu, co kde se stránkuje. knihovna je určená pro listování výsledků z databáze, takže vlastně potřebuješ udělat 2 sql dotazy : jeden, který spočte kolik tam toho je a druhý, který už výpíše konrétní výsledky N až N+10.

Gravatar
Matěj 6. 9 2014, 15:23
31/53 Sobota 6. Září 2014, 15:23  |  Chrome, Windows 8.1

@: když se pokusím vložit na stránku na které chci mít to stránkování tak mi to hlásí chybu na 511. řádku a tam je výstup (echo $paging->export_paging(); || echo $paging;)

Gravatar
Matěj 6. 9 2014, 23:47
32/53 Sobota 6. Září 2014, 23:47  |  Chrome, Windows 8.1

můj předchozí komentář prosím ignoruj... kam a jak mám napsat ty sql dotazy?

Gravatar
Matěj 7. 9 2014, 14:15
33/53 Neděle 7. Září 2014, 14:15  |  Chrome, Windows 8.1

// SELECT * TABULKA WHERE `sloupec` = 'podminka' ORDER BY id DESC LIMIT {$sql_start}, {$sql_limit}
jaká podmínka, jak to mám použít?

Gravatar
Mike 11. 9 2014, 09:39
34/53 Čtvrtek 11. Září 2014, 09:39  |  Opera, Windows 8.1

ahoj, promiň za opožděnou odpověď, ale nějak jsem toho měl v uplynulých dnech strašně moc.

no SQL dotaz si musíš napsat takový, aby vytáhl z databáze vše co potřebuješ vypsat a stránkovat. vím, že ta věta toho asi moc neřekne, ale když nevidím kód / část aplikace, tak toho ani víc poradit nemůžu. proměnné $sql_start a $sql_limit získáš dle ukázky v článku a pak je vložíš do mysql_query. např.:

$clanky = mysql_query("
	SELECT * FROM `clanky` 
	WHERE `active` = '1' 
	ORDER BY `timestamp` DESC 
	LIMIT {$sql_start}, {$sql_limit}
");

while ($row = mysql_fetch_assoc($clanky)){
	echo "<h2>".$row['nadpis']."</h2>";
	echo $row['text'];
}

echo $paging;

Gravatar
Matěj 20. 9 2014, 09:22
35/53 Sobota 20. Září 2014, 09:22  |  Chrome, Windows 8.1

Promiň nechci ti tu spamovat komentáře, a proto Nechceš mi dát tvůj mail, skype nebo něco takového. Já mám dlouhé vedení a než to ke mně došlo, tak tu máš 50 komentářů. :D

Gravatar
David Moškoř 26. 3 2016, 20:06
36/53 Sobota 26. Března 2016, 20:06  |  Chrome, Windows XP

Ahoj, zkusil jsem ten script ve fulltextovém vyhledávání, ale píše mi to chybu. Vepsal jsem tam to, co jsi měl v článku:
<?php
include('class.Paging.php');

$link = mysql_connect('88.86.117.154:3306', 'kolemzeme.wz3044', 'heslo');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
if (!mysql_select_db('kolemzeme.wz3044')) {
die('Could not select database: ' . mysql_error());
}

$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `hledat_web`"), 0);
$limit = 20;
$base = 'http://www.kolemzeme.wz.cz/zkouska.php/';

// celkem | [zakladna] | [po kolika] | [format parametru]
$paging = new Paging($total, $base, $limit, '?page=%s');
$paging->set_title_format('Stránka %s'); // nepovinne
$paging->set_around(2); // nepovinne
$paging->set_paging_mode(1); // 0
$paging->set_output_mode(1); // 0
$paging->set_paging();

// vystup
echo $paging->export_paging(); // echo $paging; // $tpl['paging'] = (string)$paging;

// parametry limit pro sql dotaz:
$sql_start = $paging->get_start();
$sql_limit = $paging->get_limit();

?>
<?php
$print_paging = $paging->export_paging();
if(!empty($print_paging)){
?>
<p class="strankovani">
<strong>Stránkování:</strong><br />
<?php echo $print_paging; ?>
</p>
<?php }?>
A ještě jsem změnil sql dotaz z:
$data = mysql_query("SELECT * FROM `hledat_web` WHERE `Nadpis` LIKE '%$item%' OR `Text` LIKE '%$item%'");
na:
$data = mysql_query("SELECT * FROM `hledat_web` WHERE `Nadpis` LIKE '%$item%' OR `Text` LIKE '%$item%' DESC limit ".$paging->get_start().", ".$paging->get_limit()."")->assocList();
Pořád mi to však nefunguje. Mohl bys mi poradit? Děkuji.

Gravatar
Mike 26. 3 2016, 21:14
37/53 Sobota 26. Března 2016, 21:14  |  Opera, Windows 8.1

ahoj, rád poradím, jen bych potřeboval znát znění té chyby. v tuto chvíli mohu jen házat z toho, co vidím, a vidím tam chybu jednu : úplně na závěr ten
->assocList. to je moje metoda, kterou ty voláš ve špatném kontextu.

Gravatar
David Moškoř 27. 3 2016, 11:36
38/53 Neděle 27. Března 2016, 11:36  |  Chrome, Windows XP

Ano, používám tvou návštěvní knihu a oboje stránkování jsem se snažil dát dohromady. Zkoušel jsem vymazat to ->assocList, ale i bez toho to nefunguje. Chyba je:
Notice: Undefined variable: paging in /3w/wz.cz/k/kolemzeme/hledej.php on line 3
a:
Fatal error: Call to a member function get_start() on null in /3w/wz.cz/k/kolemzeme/hledej.php on line 34

Gravatar
Mike 28. 3 2016, 21:16
39/53 Pondělí 28. Března 2016, 21:16  |  Opera, Windows 8.1

ajo, no asi tuším, kde může být problém... to stránkování už je jednou použité v návštěvní knize, kde dělá něco jiného... musíš si tam trochu uklidit, ať se nehádají proměnné. třeba to obalit funkcí. nebo pojmenovat instanci stránkování v tom fulltextu jinak. $paging_fulltext = ...

Gravatar
David Moškoř 29. 3 2016, 15:50
40/53 Úterý 29. Března 2016, 15:50  |  Chrome, Windows XP

Díky!!!
Udělal jsem to co jsi mi říkal a provedl jsem ještě pár úprav a funguje to! Super článek.

Gravatar
David Moškoř 9. 4 2016, 11:29
41/53 Sobota 9. Dubna 2016, 11:29  |  Chrome, Windows XP

Ahoj, mohl bych tě ještě poprosit o radu? Zjistil jsem, že mám ve stránkování ještě jednu chybu: Když je např. 13 vyhledaných slov, zobrazí se jen prvních deset, ale druhá stránka se již neukáže. Nebo, když je jich 23, zobrazí se jen dvě stránky a třetí již ne... Nevíš proč mi to nefunguje? Kód posílám zde:


<?php
// strankovani
$total = mysql_query("SELECT * FROM `hledat_web`");
$base = 'http://kolemzeme.wz.cz/zkouska.php?find='.$item.'';
$limit = 10;

// celkem | [zakladna] | [po kolika] | [format parametru]
$paging_fulltext = new Paging($total, $base, $limit);
$paging_fulltext->set_around(2); // nepovinne
$paging_fulltext->set_paging_mode(1); // 0
$paging_fulltext->set_output_mode(1); // 0
$paging_fulltext->set_paging();?>
<div style="text-align:center;">
<?php
$print_paging = $paging_fulltext->export_paging();
if(!empty($print_paging)){
?>-
<p>
<span>STRÁNKY</span><br />
<span class="video"><?php echo $print_paging; ?></span>
</p>
<?php }}?></div>

A sql dotaz jsem upravil na:



$data = mysql_query("SELECT * FROM `hledat_web` WHERE `Nadpis` LIKE '%".mysql_real_escape_string($item)."%' OR `Text` LIKE '%".mysql_real_escape_string($item)."%' LIMIT ".$paging_fulltext->get_start().", ".$paging_fulltext->get_limit()."");

Gravatar
Mike 9. 4 2016, 12:17
42/53 Sobota 9. Dubna 2016, 12:17  |  Opera, Windows 8.1

ahoj, no popisovaná chyba je zvláštní, tam na druhé stránce by něco být mělo... každopádně vidím tam jinou velkou chybu. dotaz na počet záznamů ti spočítá za prvé celou tabulku (nikoli počet vyhledaných) a za druhé tam není mysql_result, tedy v proměnné $total není číslo.

vždy tam musíš posílat 2 stejné dotazy, tedy nejdřív toto :

$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `hledat_web` WHERE `Nadpis` LIKE '%".mysql_real_escape_string($item)."%' OR `Text` LIKE '%".mysql_real_escape_string($item)."%'"), 0);

Gravatar
David Moškoř 9. 4 2016, 12:31
43/53 Sobota 9. Dubna 2016, 12:31  |  Chrome, Windows XP

Díky moc už to funguje.

Gravatar
Michal 3. 5 2016, 15:18
44/53 Úterý 3. Května 2016, 15:18  |  Opera, Windows 7

Ahoj, přiznám se hned z fleku, že se v php a programování moc nevyznám, zvládám jakž takž HTML a CSS. Rozhodl jsem se ale udělat jeden web, kde používám OOP redakční systém (lehce upravený systém, o kterém byl seriál na itnetwork.cz) a "programuju" v podstatě metodou pokus omyl, sem tam nějaký návod atd.

A tohle přesně potřebuju dodělat - stránkování novinek na úvodní stránce. Můj problém je, že - ačkoli vidím i podle reakcí lidí zde, že tvoje knihovna je naprosto to, co potřebuju - že zkrátka absolutně nevím, jak ji zakomponovat na svůj web. :) Jak říkám, moc se v php nevyznám, takže i když je na začátku ten návod pro většinu lidí zde pochopitelný, já jsem nedokázal odvodit, jak spustit tenhle systém na svém webu.

Viděl jsem v předchozí diskuzi, že jsi chtěl něco konkrétního, tak já to zkusím popsat, popř. připojím zdroják, budeš-li chtít.

Web mám rozdělený na 3 složky - MODELY, KONTROLERY, POHLEDY, klasické OOP. Paging.php jsem si hodil do modelů a cílový pohled jsou clanky.phtml ve složce POHLEDY (clanky.phtml, co uživatel vidí na úvodní stránce, je to výpis konkrétních článků s takovým tím klasickým "číst dále"). Každý "pohled" na stránce má svůj stejnojmenný kontroler.
Jak to do takového systému zakomponovat?

Děkuji předem za odpověď a opravdu nerad obtěžuju. Vím, že mi chybí kupa znalostí k aplikováních těchhle věcí, chci si ale prostě rozjet svůj vlastní web o jedné hře a nerad bych sahal k něčemu, jako je wordpress. Časem, až nabydu lepších znalostí, bych si web rád vytunil, ale do té doby hledám rady, kde se dá. Díky

Gravatar
Mike 3. 5 2016, 17:31
45/53 Úterý 3. Května 2016, 17:31  |  Opera, Windows 8.1

ahoj, ono nasazení složité není, ale pokud používáš hotový redakční systém, budeš se v něm muset ještě trochu pohrabat, než vše pořádně pochopíš.

co potřebuješ najít, je SQL dotaz, který vytahuje novinky z databáze na homepage. tam je to správné místo.

těsně před tímto SQL dotazem pošleš na databázi druhý, skoro stejný, jenom tam nebude LIMIT - abys spočítal, kolik je toho dohromady.

a vlastní SQL dotaz pak modifikuješ tak, aby obsahoval proměnné ze stránkovací třídy : což jsou ty mé $sql_start a $sql_limit. a tím řekneš systému, že má vybrat články 1-10, 11-20, atp.

dopíšeš do url ?page=2 a hnedka uvidíš, jestli to funguje. a přidání do šablony je pak jednoduché : viz návod v článku. jen se musíš postarat, aby ta proměnná $paging byla z šablony vidět.

v případě architektury model-view-controller se většinou proměnné do šablony nějakým způsobem předávají (nejsou tam automaticky). to je ale až druhý krok. nejdřív je důležitá ta úprava SQL dotazu.

Gravatar
Michal 4. 5 2016, 10:17
46/53 Středa 4. Května 2016, 10:17  |  Opera, Windows 7

Vřelé díky za odpověď! Mno, rád bych řekl, že teď už rozumím, ale...

class SpravceClanku
{

// Vrátí článek z databáze podle jeho URL
public function vratClanek($url)
{
return Db::dotazJeden('
SELECT `clanky_id`, `titulek`, `obsah`, `url`, `popisek`, `klicova_slova` , `autor` , `obrazek`, `vydano`
FROM `clanky`
WHERE `url` = ?
', array($url));
}

// Uloží článek do systému. Pokud je ID false, vloží nový, jinak provede editaci.
public function ulozClanek($id, $clanek)
{
if (!$id)
Db::vloz('clanky', $clanek);
else
Db::zmen('clanky', $clanek, 'WHERE clanky_id = ?', array($id));
}

// Vrátí seznam článků v databázi
public function vratClanky()
{
return Db::dotazVsechny('
SELECT `clanky_id`, `titulek`, `url`, `popisek` , `autor` , `obrazek`, `vydano`
FROM `clanky`
ORDER BY `clanky_id` DESC
');
}

// Odstraní článek
public function odstranClanek($url)
{
Db::dotaz('
DELETE FROM clanky
WHERE url = ?
', array($url));
}

}

Tohle je moje třída pro správu článků. To si myslím, že je to pravé místo, o kterém jsi mluvil. Myslím, že bych měl ten sql dotaz nasadit hned po funktion vratClanky.
Tam dám ono
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `clanky`"), 0);
$limit = 5;
$base = 'http://www.....cz/clanky/';

? Možná se pletu. Ale i pokud ne, tak vlastně nevím, co s tím dál.

Gravatar
Mike 4. 5 2016, 11:36
47/53 Středa 4. Května 2016, 11:36  |  Opera, Windows 8.1

tak to bude asi trochu komplikovanější :-) měla by to být ta metoda vratClanky, kterou upravíš, jak jsem psal.

public function vratClanky()
{
$total = ...
$limit = ...

$output = array();
$output['clanky'] = Db::dotazVsechny("
SELECT `clanky_id`, `titulek`, `url`, `popisek` , `autor` , `obrazek`, `vydano`
FROM `clanky`
ORDER BY `clanky_id` DESC
LIMIT {$sql_start}, {$sql_limit}
");
$output['paging'] = $paging;
return $output;
}

ty mysql_funkce by samozřejmě bylo dobré upravit na správné metody té Db třídy, ale to stačí až v druhé fázi. samozřejmě musí být naincludovaná knihovna a viditelná proměnná.

výstup funkce jsem upravil tak, aby vrátil pole o dvou klíčích - 1) články 2) stránkování

Gravatar
Jiří Komůrka 13. 6 2016, 16:36
48/53 Pondělí 13. Června 2016, 16:36  |  Chrome, Windows

Skvělý článek o stránkování, které se mi přesně hodilo do mých stránek. Jen ta implementace do stránek, to bych prostě sám nedal a děkuji Mikovi za navedení.
Snad jsem se zase něco maličko naučil. Miku, díky!

Gravatar
Jiri 5. 7 2016, 13:25
49/53 Úterý 5. Července 2016, 13:25  |  Firefox, Windows 8.1

Děkuji za tento web. Moc mi pomohl. Neumím však OOP a už vůbec nejsem schopen dle OOP návodů sestrojit web. Neuvažuješ o kurzu oop od píky se zaměřením na web ? Mohl bys prosím alespon bys vytvořit návod na stránkování procedurálně ?
Děkuji

Gravatar
Mike 6. 7 2016, 21:33
50/53 Středa 6. Července 2016, 21:33  |  Opera, Windows 8.1

ahoj, díky za pozitivní reakci. akorát s OOP tě asi zklamu - jeden seriál už jsem v minulosti napsal a další v plánu nemám. programování se věnuji už pouze okrajově a nemohl bych čtenářům nabídnout takovou kvalitu textu, jakou by hledali.

http://mike.treba.cz/objekty-v-php5-navrh-databazove-tridy-dil-i-uvod-cile/

jinak k nasazení stránkovací třídy žádné znalosti OOP nepotřebuješ, stačí se jen striktně řídit návodem.

Gravatar
noire 20. 11 2016, 19:37
51/53 Neděle 20. Listopadu 2016, 19:37  |  Firefox, Windows 7

Ahoj, vase strankovani jsem pouzil a funguje vyborne. Ale vyskytl se jeden mensi problem pri me aplikaci. Mam databazi knih, ze ktere si vyberu podle edice a vypis se v poradku strankuje. Jediny problem je pri kliknuti na prvni pozici strankovani, defaultne je tam: 'http://www.treba.cz/vypis.php', pri pohybu ve strankovani vse jede jak ma, pohybuji se treba v edici3 od vypis.php?edice=3&page=2 do vypis.php?edice=3&page=x, ale kdyz chci jit na pozici 1, mam smulu, je tam 'http://www.treba.cz/vypis.php'. Potreboval bych se vratit na zacatek edice3, takze odkaz by mel vypadat nejak takhle: '...vypis.php?edice=3', nebo i '...vypis.php?edice=3&page=1' ale nenapada me jak script upravit, aby to tak fungovalo.
Muzete mi poradit?

Gravatar
noire 20. 11 2016, 19:50
52/53 Neděle 20. Listopadu 2016, 19:50  |  Firefox, Windows 7

Jak uz to tak byva :-), jen jsem odeslal, napadlo me reseni. A funguje. Velky dik za vase strankovani.

Gravatar
Mike 20. 11 2016, 22:29
53/53 Neděle 20. Listopadu 2016, 22:29  |  Opera, Windows 8.1

@noire : děkuji za pozitivní ohlas. jsem rád, že jste se skriptem spokojen :-)

Celá diskuse

Přidat komentář







Nevím, kolik to je
Parak simati, Muballit mitte, Nergal allatu mellamu mesaru, La tapallah Annuaki, Kettu Puluthu qillatua