| | |
| Stránka: 1 z 1
| [ Príspevkov: 23 ] | |
Autor | Správa |
---|
Registrovaný: 22.01.08 Prihlásený: 19.04.15 Príspevky: 492 Témy: 135 Bydlisko: Bratislava ... |
vysvetli mi niekto princip strankovania zaznamov z db? prosim
viem ze treba henten LIMIT a definovat kolko ale mne ide o ten cyklus
co vytvara odkazy < > a 1 2 3 4 5 a takto
je mi to nezname
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
uff, ja som na tom podobne, nejak mi nedochadza princip a precital som o to uz asi vsetko... proste sa mi to nedari spravne sprevadzkovat...
http://www.php-mysql-tutorial.com/php-mysql-paging.php
tu je to ale celkom fajn vysvetlene.. ale ete som nenasiel cas podla toho to skusit...
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 22.01.08 Prihlásený: 19.04.15 Príspevky: 492 Témy: 135 Bydlisko: Bratislava ... | Napísal autor témy B.A.X.O: 18.05.2008 22:29 | |
|
nemohol by mi niekto na mojom jednoduchom guestbook kode (ktory neni este hotovy) ukazat strankovanie? netreba take ze najstarsie ani tak. stacia iba strany. netreba ani zaciatok a ani posledné. len 1 2 3 4 5 6 7 8 9 10...
a zaznamy sa budu ukladat 10 na stranu jednu...
a ja mam v plane is urobit aj mazanie v administracii, teda aby sa nevyskytlo nieco ze -5 strana alebo tak...lebo aj s tym som sa uz stretol
kode:
Kód: <html>
<form action="gb.php" method="post"> <fieldset><legend>kniha</legend> <br> Nick:<input type="text" name="nick"><br><br> Text:<textarea name="text" cols="50" rows="10"></textarea> <br> <input type="submit" name="send" value="posli"> </fieldset> </form>
</html>
<?php
$nick = trim(htmlspecialchars(addslashes($_POST['nick']))); $text = htmlspecialchars(addslashes($_POST['text']));
mysql_pconnect('', '', '') or die('Nepodarilo sa spojit s databazou');
mysql_select_db('') or die('Nepodarilo sa vybrat databázu.');
if(empty($nick) || empty($text)) { echo "Vyplňte údaje Nick a Text...<br><br><hr>"; }else{ $sql = 'INSERT INTO guestbook (`nick`, `text`) VALUES ("'.$nick.'", "'.$text.'")'; $result = mysql_query($sql); }
$result = mysql_query("select * from guestbook");
while($row=mysql_fetch_object($result)) { echo 'Nick: '.$row->nick.'<br>Text:<br><table width=500><tr><td>'.$row->text.'</td></tr></table><br><hr width=100%>'; }
?>
|
|
Registrovaný: 09.06.08 Prihlásený: 05.11.17 Príspevky: 135 Témy: 10 Bydlisko: Senica | |
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 15.06.2008 18:44 | |
|
Na nete je toho plno, stačí len hľadať. Skúsil som na rýchlo upraviť napríklad ten Baxov skript, tu je kód z hlavy, malo by to teoreticky fungovať: Kód: <?php
$rows = 10; $page = ($_GET["page"] > 1) $_GET["page"] : 1; $start_row = (($page*$rows))-$rows;
if (!isset($_GET["total"])) { $stat = mysql_fetch_array(mysql_query("SELECT count(*) as total FROM guestbook")); $total = $stat["total"]; } else {$total = $_GET["total"];}
if (($total%$rows) >= (round(($rows/2),0))) {$last = (round(($total/$rows),0));} elseif (($total%$rows) == 0) {$last = (round(($total/$rows),0));} else {$last = (round(($total/$rows),0))+1;}
$result = mysql_query("SELECT * FROM guestbook LIMIT $start_row, $rows"); while($row = mysql_fetch_object($result)) { echo 'Nick: '.$row['nick'].'<br>Text:<br><table width=500><tr><td>'.$row['text'].'</td></tr></table><br><hr width=100%>'; } for ($i=1;$i<=$last;$i++) { echo " <a href='".$_SERVER["PHP_SELF"]."?total=$total&page=$i |"; } ?>
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
vysvetlenie je jednoduvhé:
musíš pochopiť pointu ... teda: chceš mať stránky (s)
na každej stránke je x príspevkov teda záznamov v databáze je maximálne s.x
takže script zobertie počet všetkých zázanov vyráta koľko je to strán a potom už len dá počet ...napr. 6 strán ... no a ty cez LIMIT dáš ID prvého záznamu na strane teda x.s(strana) to je napr -> 30(záznamov)x5(strana) čo je 150 to je ID prvého príspevku na novej strane|
je tuvšak problém 150 určite nie je prvý príspevok na novej strane ale posledný na starej takže treba prirátať o jedno ID viac a nmáš celý systém stránkovania
príklad nájdeš na www.linuxsoft.cz
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
noo, lenze takto si nevyriesil jednu podstatnu vec.. ked tie ID nejdu za sebou:
1 2 3 4 5, ale idu napr 1 3 6 12 13 18
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
j to bolo najjdednoduchšie riešenie správne riešenie nájdeš na jakpsatweb ... ale princíp je že vždy vieš ID posledného ...
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
id posledneho ti nepomoze..
potrebujes ID kazdej, napr desiatej polozky...
ja by som to riesil cez select a pomocou while by som ukladal kazdy desiaty do premennej a tak vytvoril cisla stran a priradoval im napr:
p=IDtejPolozky
a v limite zadas:
LIMIT idPolozky, 10
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 16.06.2008 18:44 | |
|
...a správna odpoveď je C:
1. potrebuješ zistiť skutočný počet_prvkov, ktorý stránkuješ (nech sú to napr. články), vo všeobecnosti sa to robí cez SQL funkciu COUNT
2. stanovíš si počet_prvkov_na_1_stránke
3. a už ideš... počet_stránok = ceil(počet_prvkov / prvkov_na_1_stránke)
výpis odkazov na jednotlivé stránky spravíš takto:
for cyklus i = od 1 po počet_stránok, v každom odkaze dáš GET parameter stránka=i
pri výpise prvkov spravíš SQL takto:
SELECT * FROM clanky LIMIT (($_GET['stranka']-1)*počet_prvkov_na_1_stránke), počet_prvkov_na_1_stránke
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
jj, ale je to vlastne to iste, ako co som pisal ja
len sa mi nezda, ze ked vynasobis GETstranka s pocet_prvkov_na_1_stranke, tak to ti neda ID, od ktoreho to ma zacat brat
(teda, si myslim, ze LIMIT je v tvare: IDpolozkyOdKtorejZacneVyberat, kolkoPoloziek)
ak teda ale GETstranka je 5, ty odratas najprv 1, takze 4, 4*10 (to som zvolil len tak) , vyjde ti 40...
lenze polozka s ID 40, ani nemusi na stranke byt moze byt az napr 41, pretoze 40 bola zmazana...
alebo zle chapem??
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 17.06.2008 17:18 | |
|
A ak by ste sa pozreli trošku vyššie, našli by ste praktické riešenie, kde je aj zisťovanie poslednej stránky, zistenie id od ktorého sa má číslovať,...
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.06.2008 18:16 | |
|
Blackshadow, skús si najprv v MySQL manuáli overiť, ako funguje limit, predtým ako mi začneš hovoriť, kde mám chybu.
Citácia: The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be non-negative integer constants (except when using prepared statements).
With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1): SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
Takže zle chápeš.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
noo, ja som to mal z knihy, teraz, to v nej neviem najst, ale tam to pisali, ako ze to je ID, od ktoreho zacne vyberat.. tak bude som zle pochopil, ako to napisali, alebo to zle napisali. ked to najdem, dam vediet...
sorry, tak to tvoje riesenie je ok..
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 17.06.2008 22:25 | |
|
ale ano sak to tam je napisane si precitaj ked mas dva argumenty prvy je riadok od ktoreho a druhy je kolko riadkov od toho.
ked je jeden argument tak kolko riadkov od prveho z vyberu.
tak si mal pravdu ale s tym jednym argumentom si pravdu nemal
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.06.2008 22:29 | |
|
Nemal pravdu, pretože ID záznamu a offset záznamu nie je to isté.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
pisem takto:
Kód: PORADIE - ID 1 - 2 2 - 5 3 - 6 4 - 8 5 - 12 6 - 15 7 - 17
ked dam:
LIMIT 5,2
vypise mi ID 12,15,....
alebo mi vypise od ID 5,6,...
???
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 18.06.2008 15:57 | |
|
to prve takze takto ty myslis id no to fakt nemas pravdu
limit x,y
x je poradie riadku
y je pocet riadkov od x ktore sa maju vybrat
limit y
z je pocet riadkov od 1. riadku ktore sa maju vybrat
_________________ getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória |
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 18.06.2008 15:58 | |
|
samozrejme 12,15
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 18.06.2008 16:40 | |
|
Tak ešte raz
Citácia: The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be non-negative integer constants (except when using prepared statements).
With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1): SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 Citácia: Klauzula LIMIT sa môže použiť na obmedzenie počtu riadkov vrátených príkazom SELECT. LIMIT má jeden alebo dva číselné argumenty, oba musia byť nezáporné celé čísla (okrem použitia predpripravených príkazov)
Pri použití dvoch argumentov, prvý argument určuje poradie prvého riadku, ktorý bude vrátený a druhý určuje maximálny počet riadkov, ktoré sa vrátia. Číslovanie riadkov sa začína od nuly (nie od 1):
SELECT * FROM tbl LIMIT 5,10; # Vráti riadky 6-15
Vieš, LIMIT môžeš použiť aj na tabuľky, v ktorých si nešpecifikoval žiaden primárny kľúč, teda nie je tam žiadne ID prvku.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
no parada.. diki za navod p360t, po par upravach na moj script mi to uz frci na www.web4men.sk aj s upravou na dalsiu a predchadzajucu stranku
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 02.07.06 Prihlásený: 30.01.20 Príspevky: 1635 Témy: 137 Bydlisko: Slovakia - ... | Napísal javo: 26.06.2008 22:40 | |
|
este nie je zle pouzit Smarty paginate plugin, teda pokial stranka vyuziva smarty
http://smarty.incutio.com/?page=SmartyPaginate
len ho treba este kusok upravit podla mna pretoze tahat z db vsetky clanky/prispevky a potom z nich vaccsinu zahodit ako pisu v manuale (array_slice) je kusok casovo narocne, tam by som vsadil ten LIMIT z sql query
_________________ Zivot je jednoduchy , staci sa rozhodnut a neobzerat sa spat. Poriadok je pre blbcov, inteligent zvlada chaos. |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
smartyho som nikdy moc nepochopil a uprednostujem moje vlastne kody....
ale pre niekoho to moze byt fajn..
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
| Stránka: 1 z 1
| [ Príspevkov: 23 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| PHP stránkovanie v dive - znemožní stránkovanie v PHP, ASP | 7 | 545 | 24.07.2011 12:44 shaggy | | Viete mi to vysvetlit ? v JavaScript, VBScript, Ajax | 1 | 339 | 06.08.2012 23:16 Ďuri | | Vyber netbooku - skor vysvetlit nejake veci v Notebooky a netbooky | 1 | 365 | 03.06.2010 19:34 david3504 | | Môžete mi vysvetliť, prečo elektrické spotrebiče v autách zvyšujú spotrebu paliva? [ Choď na stránku: 1, 2 ] v Automobily, motorky | 47 | 4501 | 15.02.2011 10:26 MTK | | Odchod celeho systemu vdaka HDD v Pevné disky a radiče | 6 | 476 | 08.05.2017 16:12 Thexteku | | Dokonalejší web vďaka pripravovanému jazyku HTML5 v Novinky | 3 | 494 | 05.02.2008 11:14 p360t | | Schvalenie komponentov pri novom PC [VDAKA ;)] v PC zostavy | 8 | 588 | 19.05.2010 22:31 mato2D | | Ročná viazanosť je vďaka úradníkom nepovinná v Novinky | 6 | 529 | 29.12.2011 18:38 delong | | 18TB pevné disky vďaka použitiu soli v Novinky | 16 | 914 | 22.10.2011 16:37 michalesku | | Vďaka Google sa nám zhoršuje pamäť. v Novinky | 10 | 560 | 18.07.2011 16:22 Johnnny | | Poradte akú grafickú kartu kúpiť, vďaka .. :) v Grafické karty | 3 | 539 | 03.01.2014 17:36 Xaltotun | | Strankovanie v PHP, ASP | 7 | 543 | 03.05.2008 11:24 qacer | | strankovanie v PHP, ASP | 6 | 345 | 30.09.2014 22:20 shaggy | | strankovanie v JavaScript, VBScript, Ajax | 3 | 626 | 09.01.2009 12:47 rooobertek | | Strankovanie [ Choď na stránku: 1, 2 ] v PHP, ASP | 35 | 2250 | 13.01.2008 14:11 ROmario | | stránkovanie v PHP, ASP | 12 | 1011 | 01.10.2009 18:08 dessert |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|