• 12 odgovora
  • 7.970 pregleda
Paginacija ispisa iz baza u PHP stranici 24.03.2005. u 12:53 · pre 262 meseci #1
Naslov je malo nezgodan ali nisam znao kako da ga definisem drugacije :d
Ovako
recimo vadim podatke iz baze podataka i rezultata ima 50 a ja zelim da mi se izlista po 10 i da ispod postoje linkovi za sledecu stranu gde je sledecih 10 itd.
recimo za ovaj kod

Code:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <?php
            $db=mysql_connect('localhost','user','pass');
            if(!$db)
            {
                echo 'Baza nije pristupacna';
                exit;
            }
            mysql_select_db('books');
            $query="select * from books";
            $result=mysql_query($query);
            $num_result=mysql_num_rows($result);
            for($i=0;$i<$num_result;$i++)
            {
                $row=mysql_fetch_array($result);
                echo '<p><b>Title:</b> ';
                echo stripslashes($row['title']);
                echo '<br/>';
                echo '<b>Autor:</b> ';
                echo stripslashes($row['author']);
                echo '</p>';
            }
            ?>
        </body>
    </html>


[Ovu poruku je menjao boccio dana 24.03.2005. u 14:19 GMT+1]
Potpis
www.autopijac.com
www.linkovi.info
www.privrednivodic.com
www.tuhaj.com
Re: Sledeca strana pri izlistavanju 24.03.2005. u 13:15 · pre 262 meseci #3
u osnovi, samo prosledjujes skripti neki $pagenum i fiksiras offset...na taj nacin uz pomoc LIMIT naredbe iteriras kroz bazu...

evo na brzaka neki primer kroz tvoj kod (nisam testirao):
Code:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <?php
            $offset = 40; broj rezultata po strani
            if (!isset($pagenum)) 
                   $pagenum=0; // ako je prva strana
            else
                   $pagenum = $_GET['pagenum'];

            $db=mysql_connect('localhost','user','pass');
            if(!$db)
            {
                echo 'Baza nije pristupacna';
                exit;
            }
            mysql_select_db('books');
            $num = $offset * $pagenum; // glumi kursor u recordsetu
            $query="select * from books LIMIT $num, $offset";
            $result=mysql_query($query);
            $num_result=mysql_num_rows($result);
            for($i=0;$i<$num_result;$i++)
            {
                $row=mysql_fetch_array($result);
                echo '<p><b>Title:</b> ';
                echo stripslashes($row['title']);
                echo '<br/>';
                echo '<b>Autor:</b> ';
                echo stripslashes($row['author']);
                echo '</p>';
            }
            echo "<a href={$_SERVER['PHP_SELF']}?pagenum=1>sledeca strana</a>";
            ?>
        </body>
    </html>

a onda mozes da se igras do besvesti, pogotovo sa navigacijom kroz recordset...
Potpis
Jeff, one day you’ll understand that it’s harder to be kind than clever.
Re: Paginacija ispisa iz baza u PHP stranici 24.03.2005. u 16:42 · pre 262 meseci #5
Imas dovoljno objasnjenja.

u ovom kodu zameni:
Code:
            if (!isset($pagenum)) 


sa:
Code:
            if (!isset($_GET['pagenum'])) 


i na kraju:
Code:
            echo "<a href={$_SERVER['PHP_SELF']}?pagenum=1>sledeca strana</a>";


sa:
Code:
            echo "<a href={$_SERVER['PHP_SELF']}?pagenum=".($pagenum+1).">sledeca strana</a>";


E sada tu bi trebalo dodati kontrolu da $pagenum ne odleti nebu pod oblake, napraviti jedan count upit pa napraviti link za svaku stranicu i sl. Ali osnova ti je vec ukazana, potrudi se malo.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Paginacija ispisa iz baza u PHP stranici 24.03.2005. u 18:30 · pre 262 meseci #7
ma to je njegov kod, to nisam ni dirao (tj. gledao :)...dodao sam samo par linija koje prave paginaciju :)
Potpis
Jeff, one day you’ll understand that it’s harder to be kind than clever.
Re: Paginacija ispisa iz baza u PHP stranici 24.03.2005. u 21:41 · pre 262 meseci #10
Molim korisnika koji je pokrenuo temu da:

1) Procita sta je u njoj napisano - i to redom SVE poruke
2) da primeni ispravke koje sam napisao u GOTOVOM resenju koje mu je dostavljeno
3) da u slucaju da ima daljih problema, posalje DETALJAN izvestaj sa greskom koja se pojavljuje (ako se uopste pojavljuje)

Objasnjenje:
Stil kako je ova diskusija vodjena, gde pomenuti korisnik vice kako program ne radi, a mi ostali bacamo pasulj da li je on uopste procitao sta sve ovde pise nece nikome pomoci. Ja sam uklonio par poruka koje nisu imale nikakvu informativnu vrednost i molim da se na ovoj (a i na svim ostalim) diskusijama prate pravila PHP foruma.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Paginacija ispisa iz baza u PHP stranici 25.03.2005. u 22:34 · pre 262 meseci #12
Da si opet procitao sve do kraja, video bi da sam ti i to rekao kako da uradis. Naravno ne mozes ocekivati da ljudi ovde resavaju tvoje domace zadatke.

Uostalom, imas i gotovo resenje u onoj klasi na koju je ostavljen link.
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Re: Paginacija ispisa iz baza u PHP stranici 25.03.2005. u 22:37 · pre 262 meseci #13
Jednostavno se naježim kada vidim koliko neki ljudi ne žele ništa da nauče. Površni su, brljivi, lenji - takvima nije mesto u programiranju.

O ovome je bilo toliko reči, sećam se da sam i ja objašnjavao korak po korak, ali ne, nije dovoljno sve dok se ne stavi gotov script. Ako želite gotove scriptove nemojte dolaziti na forum nego idite na neki hotscript ili neski slican sajt.
Potpis
Goran Pilipović fka bluesman
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme