Autor | Zpráva | ||
---|---|---|---|
Martin011 Profil |
#1 · Zasláno: 2. 8. 2009, 19:29:32
Ahoj, můžete mi někdo poradit, jak udělat jednoduché stránkování v php?
něco ve stylu: předchozí 1 2 3 4 5 další Díky za jakoukoliv pomoc. Snažím se, ale nějak mi to nejde. |
||
AM_ Profil |
#2 · Zasláno: 2. 8. 2009, 19:37:53
To se tady řešilo už asi tisíckrát, diskuse má vyhledávání, nebo to zkus tady:
http://lmgtfy.com/?q=str%C3%A1nkov%C3%A1n%C3%AD+PHP pokud máš něco rozdělané a máš konkrétní problém, napiš ho. |
||
Martin011 Profil |
#3 · Zasláno: 2. 8. 2009, 20:17:18 · Upravil/a: Martin011
Jo já vím, že se to tu už hodněkrát řešilo. Četl jsem o tom i dost článků. Tak nejdříve mě napadl způsob stejný jak u menu, ale asi to je blbost.
include ("neco.php"); $stranka = $_GET['page']; if (!isset($_GET['page'])) $soubor = "soubory/".$stranka.".php"; if (!file_exists($soubor)) { } include ($soubor); a v includovaném souboru: <?php echo "<ul>"; echo "<li"; if ($page=="1") { echo " class='aktivni'"; } echo "><a href='index.php?page=1'>1</a></li>"; echo "<li"; if ($page=="2") { echo " class='aktivni'"; } echo "><a href='index.php?page=2'>2</a></li>"; . . . "</ul>"; ?> ale zase nevim, jak by se to mělo označit v css. měl jsem tam něco jako: ul li a:hover { text-decoration:underline;color:black} ul li .aktivni { color:black; text-decoration:none} Zkoušel jsem to i jinak přes db. Ale jestli opravdu někdo víte, jak na to, tak mi prosím vás poraďte, příště budu zase o něco chytřejší. :-)) (opravdu jednoduché stránkování, i kdyby to třeba bylo 1 2 3.., místo - předchozí 1 2 3 4 5 další) Díky moc |
||
SwimX Profil |
#4 · Zasláno: 2. 8. 2009, 20:20:36 · Upravil/a: SwimX
Martin011:
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=97738&page=-1 ? //edit, bez toho .sanbox :) |
||
AM_ Profil |
#5 · Zasláno: 2. 8. 2009, 20:23:39
a co takhle zkusit něco z kódů z google nebo tady? jasně, že to, co píšeš, je blbost - přinejmenším, že to řešíš příšerným větvením místo cyklu. Proč by ti někdo sem měl psát znova stránkovač, když jich jsou na webu stovky?
|
||
Martin011 Profil |
#6 · Zasláno: 2. 8. 2009, 20:29:37
jj, tak dobře vyzkouším a uvidím. zatím díky :-))
|
||
Radek9 Profil |
#7 · Zasláno: 2. 8. 2009, 20:35:04 · Upravil/a: Radek9
Martin011:
Edit: Tak nic :D jsem to přehlídnul :D |
||
Martin011 Profil |
#8 · Zasláno: 2. 8. 2009, 21:30:03
uvedu celý problém. Mám aktivní položku v php (url: index.php?str=neco). A v ní chci udělat stránkování.
Třeba normální text. Na jedné stránce bude něco. Kliknu na druhou stránku-ta se zvýrazní jako hlavní. Tam je zase jiný obsah. třeba něco jako: předchozí 1 2 3 4 5 další, ale v aktivní položce php Takže vůbec nevím, jak mám zapsat aby, se zvýraznila aktivní stránka a ještě zůstala zvýrazněná položka menu. Něco podobného jako na [url=google.cz]google[/url]. Když kliknete např. na obrázky, zvýrazní se vám. Dáte třeba něco hledat a vyjede vám text a dole máte stránkování. Každá stránka(123) se zvýrazní, když na ní kliknete. Takže máte vlastně 2 php v sobě. Něco takového myslím. |
||
SwimX Profil |
#9 · Zasláno: 2. 8. 2009, 21:35:38
Martin011:
„Takže máte vlastně 2 php v sobě. Něco takového myslím.“ jsem si jist, že todle nechápu. můj odkaz -> je stránkování, okkomentované, snad není tak těžké ho použít. obarvení dělá css řekněme že k té mé fci by mělo jít: p.pages a:hover{ color: yellow; } p.pages span.active{ color: red; } aby fungovalo to druhé, je třeba tuto řádku: echo $strana." | "; upravit na echo "span class='active'>".$strana."</span> | "; |
||
Martin011 Profil |
#10 · Zasláno: 2. 8. 2009, 21:43:13
Díky moc za radu. Když to dám celé dohromady, tak mi to ale na wz.cz hlásí tohle:
Warning: mysql_query(): Access denied for user 'nobody'@'zeus' (using password: NO) in /3w/wz.cz/m/martins-web/soubory/zaj.php on line 72 Warning: mysql_query(): A link to the server could not be established in /3w/wz.cz/m/martins-web/soubory/zaj.php on line 72 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/m/martins-web/soubory/zaj.php on line 72 Musí se tam někde nastavovat potřebné údaje do db? |
||
Martin011 Profil |
#11 · Zasláno: 2. 8. 2009, 21:43:53
Udělal jsem to, jak jsi mi řekl-odkaz,css a změnil řádek.
|
||
SwimX Profil |
#12 · Zasláno: 2. 8. 2009, 21:44:21
Martin011:
„Musí se tam někde nastavovat potřebné údaje do db?“ v mé funkci ne, ale ty je na začátku skriptů mít budeš muset, nečekaně :) |
||
Martin011 Profil |
#13 · Zasláno: 2. 8. 2009, 21:49:27 · Upravil/a: Martin011
takže začátek skriptu bude vypadat nějak takhle?
<?php $db_server = "localhost"; $db_login = "jmeno"; $db_heslo = "heslo"; $db_jmeno = "databaze"; a teď ten skript ?> pořád mi to píše: Warning: mysql_query(): Access denied for user 'nobody'@'zeus' (using password: NO) in /3w/wz.cz/m/martins-web/soubory/zaj.php on line 79 Warning: mysql_query(): A link to the server could not be established in /3w/wz.cz/m/martins-web/soubory/zaj.php on line 79 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/m/martins-web/soubory/zaj.php on line 79 |
||
Martin011 Profil |
#14 · Zasláno: 2. 8. 2009, 21:57:15
pošlu ti celý skript:
<style> p.pages a:hover{ color: yellow; } p.pages span.active{ color: red; } </style> <?php $db_server = "server"; $db_login = "neco"; $db_heslo = "d"; $db_jmeno = "neco"; // zjistime jestli nekde jsme, jinak první strana if(isset($url['dir4'])){ // čtvrtá GET proměnná za lomítkem strana-x $strana = split('-',$url['dir4']); $strana = is_numeric($strana[1])?$strana[1]:1; } else $strana = 1; // zjistíme počet záznamů v tabulce $pocetradku = mysql_result(mysql_query("SELECT COUNT(*) from diskuze "), 0); if ($pocetradku>0) { // pokud nějaké jsou -> nezbytné výpočty, mysql dotaz, stránkování, jinak nic $pocet = 1; $od = ($strana-1) * $pocet; $limit = "limit $od, $pocet"; $cl=mysql_query("SELECT * FROM diskuze $limit;"); strankovani($pocet, 3, "/{$url['dir1']}/{$url['dir2']}/{$url['dir3']}/strana-", $strana, $pocetradku); } function strankovani($pocet_radek, $okolo, $url, $strana, $celkem_radek){ if ($celkem_radek>$pocet_radek){ echo "<p class='pages'>"; if ($strana == 1) { echo "Začátek | "; echo "Předchozí | "; } else { echo "<a href=\"".$url."1/\">Začátek</a> | "; echo "<a href=\"".$url."".($strana-1)."/\">Předchozí</a> | "; } for($i = $okolo; $i > 0; $i--){ if(($strana-$i)>0) echo "<a href=\"".($url).($strana-$i)."/\">".($strana-$i)."</a> | ";; } echo "span class='active'>".$strana."</span> | "; $posledni_strana = ceil($celkem_radek/$pocet_radek); for($i = 1; $i <= $okolo; $i++){ if(($strana+$i)<=$posledni_strana) echo "<a href=\"".($url).($strana+$i)."/\">".($strana+$i)."</a> | "; } if ($posledni_strana == $strana) { echo "Následující | "; echo "Konec"; } else { echo "<a href=\"".$url.($strana+1)."/\">Následující</a> | "; echo "<a href=\"".$url.$posledni_strana."/\">Konec</a>"; } echo "</p>"; } } ?> Co je tam špatně? |
||
SwimX Profil |
#15 · Zasláno: 2. 8. 2009, 22:01:41
Martin011:
chceš mi tvrdit že naplněné několika proměnných tě připojí do DB? http://www.linuxsoft.cz/article.php?id_article=336 |
||
Martin011 Profil |
#16 · Zasláno: 2. 8. 2009, 22:05:54 · Upravil/a: Martin011
ale musí tam na začátku být přihlašovací údaje do db?
takže by to mohlo stačit takhle: <? mysql_connect("localhost", "uzivatel", "heslo"); mysql_select_db("mojedb"); ?> ne? |
||
SwimX Profil |
#17 · Zasláno: 2. 8. 2009, 22:08:14 · Upravil/a: SwimX
Martin011:
musí. ale takle. mysql_connect( $db_server, $db_login, "heslo"); mysql_select_db("mojedb"); jo přesně tak. |
||
Martin011 Profil |
#18 · Zasláno: 2. 8. 2009, 22:10:43
no teď ti teda řeknu, teď mi to nehlásí nic, ale také se mi nic nezobrazuje
|
||
Martin011 Profil |
#19 · Zasláno: 2. 8. 2009, 22:12:55
nic jako předchozí, konec a tak
|
||
Martin011 Profil |
#20 · Zasláno: 2. 8. 2009, 22:15:41
nevíš, čím by to mohlo být? Tobě to funguje?
|
||
Martin011 Profil |
#21 · Zasláno: 2. 8. 2009, 22:18:21
co se má dát místo toho dir?
|
||
SwimX Profil |
#22 · Zasláno: 2. 8. 2009, 22:22:28
Martin011:
název $_GET Proměnné ve které je tvoje číslo aktuální stránky. a ne místo dir ale místo velého $url[dir] |
||
Martin011 Profil |
#23 · Zasláno: 2. 8. 2009, 22:27:23
jak číslo?
$_GET [str] |
||
Martin011 Profil |
#24 · Zasláno: 2. 8. 2009, 22:28:00
takže místo "velého $url[dir]" dám $_GET?
|
||
Martin011 Profil |
#25 · Zasláno: 2. 8. 2009, 22:29:56
$_GET['1'] takhle třeba?
|
||
Martin011 Profil |
#26 · Zasláno: 2. 8. 2009, 22:37:41
takže místo tohohle skriptu
$url['dir4'] dám co? a namísto tohohle $url['dir1']}/{$url['dir2']}/{$url['dir3'] ? Promiň, že tě už asi otravuji, ale co tam mám dát místo toho? Jeden z posledních dotazů |
||
SwimX Profil |
#27 · Zasláno: 2. 8. 2009, 22:43:08
Martin011:
„Jeden z posledních dotazů“ poslední. jdu spát. místo tohodle: $url['dir1']}/{$url['dir2']}/{$url['dir3'] si dej třeba http://www.tvojewww.cz/index.php?neco=ahoj&strana=1 a místo $url[dir4] příde např $_GET['strana'] |
||
Martin011 Profil |
#28 · Zasláno: 2. 8. 2009, 22:43:40
dobře díky moc. Měj se dobře. A díky :-)))
|
||
Časová prodleva: 15 let
|
0