|
Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum. |
|
Alati teme | Način prikaza |
12. 12. 2007. | #1 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
Kako najbolje izvesti ispis iz goleme baze
Zanima me i logika i kako to izvesti.
Pricaj je prosta. Iz baze bi mozda imao ispis i 30 redova recimo. Ne zelim da mi prikazuje sve ispise odjednom (oticice stranica u q. isto u ucitavanje). Hocu ovako jednostavno kao na forumu. 10 ispisa iz baze pa stranica 1, ako imas 21 ispis da napise i stranica 3 i tako dalje. na svakoj stranici da imam link za prethodnu i sledecu stranu... koja je logika.... bojanje negde u bazi ili u aplikaciji ? dakle sql bi jedno trebao da mi vratim samo prvih 10 u nekom drugom slucaju da mi vrati 11-20 ukljucujuci i te granice... tnx |
12. 12. 2007. | #2 |
profesionalac
Professional
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
|
Kôd:
SELECT <nesto> FROM <tabela> <uslov> LIMIT 0,10 Kôd:
SELECT <nesto> FROM <tabela> <uslov> LIMIT 10,10 Kôd:
SELECT <nesto> FROM <tabela> <uslov> LIMIT 20,10 Ako imaš linkove obeležene sa 1, 2, 3, ... onda možeš da prosleđuješ promenljivu $page sa vrednostima 1,2,3 ... a u SQL upitima staviš LIMIT ".($per_page*($page - 1))." , ".$per_page." gde je $per_page broj rekorda po strani koji je bio 10 u gornjim primerima. Poslednja izmena od BluesRocker : 12. 12. 2007. u 12:07. |
12. 12. 2007. | #3 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Ili koristiš neki frejmvork koji ima straničenje.
|
12. 12. 2007. | #4 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
@BluesRocker
znac li to da i forum tako funkcionise.... preko sql-a radi granice ? hvala za detaljno objasnjenje tnx mada sada mi pade nesto napamet. treba da radim nesto novo a imam i vec staro. 1. kod starog ako sam dobro razumeo morao bih da menjam linkove (koristi se get) tako da to znaci odmah i pad seo ? I evo ovaj primer. default bi bilo SELECT <nesto> FROM <tabela> <uslov> LIMIT 0,10 i sta kako da izvedem da ako ima vise zapisa od 10 da mi napise strana 2, ako ima vise od 20 da napise strana 3 i tako dalje ? Odradim pre tog upita upit sa count da vidim koliko imam redova, pa to strpam u promenljivu. pa kazem if($promenljiva > 10) { $brstrana = 2; } else if($promenljiva > 20) {$brstrana = 3; } ne znam da li me razumete... saznam ja broj rodova preko count-a, ali kako sad da mu kazem ako ima vise od 30 bice 3 stranice, ako ima vise od 100 bice preko 10 stranica i da mi ispisuje redne brojeve stranica ??? ili bolje da radim prethodna i sledeca ? if else ili ima nesto elegantnije ? @jablan e ovo nemam pojma kako se radi i cemu to sluzi :P hehe |
12. 12. 2007. | #5 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
http://en.wikipedia.org/wiki/Web_application_framework
Al bolje prvo nauči kako se ručno pravi... Jeste, prvo uradiš count da vidiš koliko ima ukupno, i onda for petljom (od 1 do count/broj_po_stranici) ispišeš linkove za sve stranice. |
12. 12. 2007. | #6 |
profesionalac
Professional
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
|
Imaš na netu gotove klase za straničenje. Samo sam pokušao da ti objasnim kako funkcioniše.
Kako da znaš koliko ima strana? count(*) -> $broj_rekorda $broj_strana = ceil($broj_rekorda/$broj_rekorda_po_strani); $broj_rekorda_po_strani - ovo nek ti bude neka konstanta Možeš i da postaviš uslov koje će stranice da se ispisuju, prva, druga, ... izabrana, ... pretposledna, poslednja, prethodna, sledeća. |
12. 12. 2007. | #7 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
ok nabudzicu nesto...
niste se osvrnuli na SEO. da li na vec postojeci sajt i strane koji primaju parametre preko get metode implementirati ovo stranicenje ? Ako sam dobro razume, kada bi neko kliknuo recimo na stranu "3" morala bi da se prenese i ta promenljiva preko get metode i to bi postao novi link.. jedino da u osnovnom linku nista ne menjam vec da ide samo ispis sa limitom, a kada se klikne da se otvara satro nova stranica sa novim linkom... time stari link ostaje isti i google ce i dalje njega gledati lepo a ove nove ce pre ili kasnije indeksirati ?! jesam li upravu evo sad se setih.... pomenuo count pa i vi nastavili... valjda mogu i sa funkcijom mysql_num_rows($res); deluje mi da je ovako brze jer ima "samo" jedan upit a sa countom bi bilo 2 upita ?? Poslednja izmena od staseprimate : 12. 12. 2007. u 20:19. |
12. 12. 2007. | #8 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
off : moram da dodam komentar na svoj post jer mi fali opcija edit ?!
evo skinuo sam ovo http://www.phpclasses.org/browse/package/2185.html i prilagodio svojoj bazi. radi mi lepo samo prvu stranicu... stavim limit 5 ima samo 5 stavim limit 24 ima samo 24, ali gde god da klinem na one linkove 1,2 next dobijam samo index stranu a url se promeni sa page=1 na page=2 i tako dalje.... valja li ova klasa uopste... i jel ja to imam neku gresku !? |
13. 12. 2007. | #9 |
Ivan Dilber
Sir Write-a-Lot
|
mysql_num_rows ti vraca broj rekorda u rezultatu. Posto ti koristis LIMIT ti ces uvek da imas isti broj rezultata, tipa 10 ili koliko vec namestis.
Postoji lepsa fora od ovog Bojanovog, koja koristi jedan upit, a to je sledece: Kôd:
SELECT SQL_CALC_FOUND_ROWS <nesto> FROM <tabela> WHERE <uslov> LIMIT <offset>,10; # i onda posle: SELECT FOUND_ROWS() AS num_total_rows;
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 13. 12. 2007. u 01:41. |
"Hvala" ivanhoe za poruku: |
13. 12. 2007. | #10 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
'multiple' ispis iz baze | eclipse | Sva početnička pitanja | 13 | 16. 12. 2010. 01:26 |
Ispis odabranih checkboxova i upis u bazu | blackshtef | PHP | 3 | 23. 04. 2010. 21:00 |
Kako najbolje monetizovati srpski traffic (i ex yu) a da to nije Adsense? | zoki | Marketing i SEO | 56 | 11. 03. 2010. 20:06 |
OOP programiranje - najbolje objasnjenje | colke | Programiranje | 1 | 10. 11. 2006. 12:07 |