PHP stránkování bez použití DATABÁZE
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Následují script sem vyhrabal někde na netu a vůbec nevim jak ho použít. Takže "soubor" mam nahradit něčím jiným to vim, skoušel sem "data.dat" ale to nefungovalo. NEvíte jak na to?, že by v nějakém souboru byly články, které by se po 15 vypisovali na stránku.. $prispevek = File("soubor"); if (!IsSet($idprispevek)) { $idprispevek=1; } $pocatek = $idprispevek*15-15; // zobrazujem po 15 $konec = $idprispevek*15-1; for ($i=$pocatek;$i<=$konec;$i++) { echo $prispevek[$i]; } // vypis 1,2,3,.. $strana = Ceil(Count($prispevek)/15); for ($x=1;$x<=$strana;$x++) { echo "<A href=\"?idprispevek=$x\">$x</A> |"; }
-
co to znamena "nefungovalo"?
-
No, řekl bych, že by jsi měl nastudovat něco málo z PHP, nebo se naučit svěřovat se svými problémy strýčku Gůglovi. Ono je totiž principiálně jedno, jestli "stránkuješ" s databází, nebo bez ní. Pokud si zvládněš dobře připravit data, tak je to potom otázka několika triviálních podmínek a ty tady snad nemusím vypisovat, že?!
-
Strejda Gůgl mi řek jak na to, ale všechno se vypisovalo z databáze. A PHP vůbec neumim, ale chystam se naučit.
-
nefungovalo zanmená, že to hodilo error a konec. napsal sem místo soubor data.dat, vytvořil soubor "data.dat" tam ssem něco napsal, uložil a skusil
-
>> nefungovalo zanmená, že to hodilo error a konec no tak to vim stejne jako predtim: nic. takhle se daleko nedostanem
-
Tak, chtěl by sem mít třeba složku data a v ní soubory (očíslované) a na stráce by to vždy vypsalo jen určíty počet těchto stránkek a dole by bylo stránkování 1!2!3 atd. :-)
-
nesro: jak jsem již psal: záleží na tom, jak si připravíš data a souvislost s DB to absolutně žádnou nemá. Stránkování je otázka několika podmínek. Mrkni na http://php.vrana.cz/strankovani.php a části kódu pracující s databází nahraď tak, aby ti to vyhovovalo. Nic víc v tom není ... tedy pokud zde po nás nechceš již hotový kód. To sem potom připiš fakturační údaje :)
-
a za dobrý pocit? už sem si sehnal knížu o PHP, tak se to snad naučim :p
-
z dobrýho pocitu se nenajíš ;) ale princip stránkování je zhruba tento: 1) vypočítat počet stránek: ceil($pole, $na_strance); 2) podle aktuální stránky vypsat stránky: for($i=1;$i<=$pocet_stranek$i++) { if($i == $aktualni_stranka) echo $i; else echo <a href="?param='.$i.'">'.$i.'</a> } 3) vypsat potřebná data: for($i=1;$i<=$na_strance;$i++) echo $pole[($aktualni_stranka*$na_strace+$i)]; Pro svou potřebu si to musíš upravit, protože netuším, co používáš za proměnné. Btw, na PHP knížka není potřeba na netu je kupa seriálů o PHP a mnohdy jsou lepší než kniha samotná... :)
-
knížek je taky hodně, IMHO si myslim že z knížky se to musí opsat a tím se to člověk taky trošku učí, kdežto z netu se to zkopčí a nic se nepíše, ale asi máš pravdu ;+)
-
mno, ja pouzivam toto, ale hodlam to predelat... function PPnav1($where,$Xfrom,$Xcount,$Xfound,$add) {if ($Xfound>0) { // global $Slink; // |< << < 4/20 > >> >| // a b c x y d e f $d = array(); $title = array(); $hide = array(); $zn = array("","|<","<<","<",">",">>",">|"); $x = floor($Xfrom / $Xcount); $y = ceil($Xfound / $Xcount); //ne++ $a=1; $d[$a] = 1; $hide[$a] = $y<=1 ? 1 : 0; //ne++ $a=6; $d[$a] = $y; $hide[$a] = $y<=1 ? 1 : 0; //ne++ $n = ceil($y/10)<<1; $a=3; $d[$a] = $x-1; $hide[$a] = $d[$a]< $d[1]-1 ? 1 : 0; $a=2; $d[$a] = $d[3]-$n;$hide[$a] = $d[$a]< $d[1]-1 ? 1 : 0; $a=4; $d[$a] = $x+1; $hide[$a] = $d[$a]>=$d[6]-1 ? 1 : 0; $a=5; $d[$a] = $d[4]+$n;$hide[$a] = $d[$a]>=$d[6]-1 ? 1 : 0; $a=1; $d[$a]--; $a=6; $d[$a]--; ksort($hide); //ksort($d);print_r($d); //$t2=$add.($add!==""?"&":"").'count='.$Xcount.'&from='; $t ="\n<p align=\"center\" class=\"arrownav\">"; $a=0; foreach($hide as $key => $value) { $a+=$value; $z = HTMLSpecialChars($zn[$key]); $t2= array(); if ($add!=="") {$t2[]=$add;} $t2[]="count=".$Xcount; $t2[]="from=".(($d[$key]*$Xcount)+1); if ($value===1) {$t.="\n<span>$z</span>";} else {$t.="\n".html_link($where,$t2,$z,$d[$key]+1);} if ($key==3) {$t.="\n".($x+1)." / $y";} } $t.="\n</p>"; if ($a==6) {$t="";} return $t; }} $where - kam odkaz $Xfrom - stranka OD $Xcount - pocet zobrazenych zaznamu $Xfound - pocet zaznamu z SQL $add - pridani za odkaz (treba serazovani) http://www.volny.cz/peter.mlich/www.htm#msub13 mracek CMS
-
dík, vysvětlíš mi, jak to funguje?
-
Mno, je to trochu drasticke, v soucasne dobe mam v planu jine strankovani... $where - kam odkaz $Xfrom - stranka OD $Xcount - pocet zobrazenych zaznamu $Xfound - pocet zaznamu z SQL $add - pridani za odkaz (treba serazovani) generuje to sadu odkazu se sipkami, podle vstupnich hodnot |< << < 4/20 > >> >| kdyz nelze nekam jit, sipka se nezobrazi, nebo muzes nastavit, ze je seda a neklikatelna. Vstupni data ziskas pomoci SELECT COUNT a SELECT LIMIT $a,$b;