navigacija strana u php
Prikazujem rezultate 1 do 20 od 20

Tema: navigacija strana u php

  1. #1
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano navigacija strana u php

    Znate onu foru -ispisuje 5 vesti na stranu ,a ostale na sledecim stranama
    tipa
    1>2>......>23 ..kao i na ovom forumu gde je recimo na prvoj strani top 15 tema ostale idu na drugu,trecu...po starosti.
    Ima strucan naziv za to i googlo-vao i nasao nesto na netu,skinuo stranice i greskom obrisao folder..
    Jel se tesko pravi ta navigacija(moj primer je povezan za bazom odakle stizu vesti,a ja hocu samo 5 na naslovnoj,visak na drugim str.)Pokusao sam da napravim sa primerom iz knjige ali javlja mysql problem(evo dela koda)
    ----------------------------------------------------------------------------------------------------
    <?php
    //prikazivanje rezultata tabele vesti
    $base="vesti";

    $link=mysql_connect('localhost','root','a');
    if(!mysql_select_db($base))
    {
    echo "Nije selektovana baza!";
    };
    $page_post=5;//ukupan broj vesti po stranici
    $page_navigation=0;
    $page_number=$page_navigation+1;
    $default_order='idnovost';
    $default_order_str="ORDER BY $default_order";
    $order_sort='ASC';
    $order_by_str="$order_sort";
    $limit_str="$page_navigation*$page_post,5";

    $result=mysql_query("SELECT * FROM novosti ORDER BY idnovost DESC LIMIT \"$limit_str\"");
    echo "<hr width=\"80%\">";
    $query_data=mysql_fetch_row($result);
    $total_num_user=$query_data[0];
    $num=mysql_num_rows($result);

    $i=0;
    while ($i < $num) {

    $naslov=mysql_result($result,$i,"naslov");
    $tekst=mysql_result($result,$i,"tekst");
    $introtekst=mysql_result($result,$i,"introtekst");
    $idnovost=mysql_result($result,$i,"idnovost");
    $autor=mysql_result($result,$i,"autor");
    $datum=mysql_result($result,$i,"datum");


    echo "<p class=\"xbig\">$naslov</p>";
    echo "<p class=\" expanded style 2\">$introtekst ...</p>";
    echo "<a href=\"full.php?id=$idnovost\">"."<p class=\" justified\">cela vest...</p></a>";
    echo "<p class=\" small style3\">$autor</p>";
    echo "<p class=\"small style3\">datum: $datum </p><br>";
    echo "<hr width=\"80%\"><br>";
    $i++;
    };
    //navigacija-kretanje po stranama
    $total_num_pages=ceil($total_num_user/$page_post);
    if($page_navigation>0)
    {
    $prev_page=$page_navigation-1;
    echo "<a href=\"$PHP_SELF?$page_navigation=$prev_page\">pre thodna strana</a>";
    }
    if($page_navigation<$total_num_pages)
    {
    $next_page=$page_navigation+1;
    $last_page=$total_num_page-1;
    echo "<a href=\"$PHP_SELF?$page_navigation=$last_page\">sle deća strana</a>";
    }
    ?>
    ---------------------------------------------------------------------------------------------------------------------



  2. #2
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\primer6\naslovna.php on line 60

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\primer6\naslovna.php on line 62
    evo greske ali ne vidim zasto upit musql ne bi bio dobar..ovo sto ima ORDER promenljive je trebalo isto da ide u upit,ali sam privremeno skratio...

  3. #3
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    $result=mysql_query("SELECT * FROM novosti ORDER BY idnovost DESC LIMIT $limit_str");

    Dakle, nema potrebe za navodima.

    Drugo posto vuces ceo record (SELECT * FROM) ne znam da li belezis datum vesti u bazi, pa ako ga imas dodaj:

    WHERE datum <= CURDATE() ORDER BY datum desc

    To ce ti omoguciti da unapred punis bazu vestima koje ce se objavljivati same na zadati datum, a ORDER BY idnovost je neprirodno posto se vesti vezuju za datum
    Linux is like a wigwam. No gates, and Apache inside!

  4. #4
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    Nece-isto javlja,zato sam probao sa navodnicama i sa " i sa '(za svaki slucaj)..
    Imam za datum,ali cu to prepraviti(stavio sam prvo da se unosi kao tekst preko forme,ali to nije bas najbolja ideja

  5. #5
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    tek sad vidim da ti uopste ne prozivas bazu kako treba. Najverovatnije ti treba ovo

    if(!mysql_select_db('root',$link))

    Prvo napravi da ti proziva jednu vest iz baze, pa kad to radi onda uvedi while
    Linux is like a wigwam. No gates, and Apache inside!

  6. #6
    Zainteresovan član <<<Shadow>>> (avatar)
    Učlanjen
    13.07.2007.
    Poruke
    237
    Reputaciona moć
    0

    Podrazumevano Re: navigacija strana u php

    jel zna kokako se pravi ono sing up ako zna neka posalje kod ili cu mu ja poslati sajt pa neka mi on stavi

  7. #7
    Iskusan codemaker (avatar)
    Učlanjen
    05.04.2004.
    Lokacija
    Beograd
    Poruke
    6.416
    Reputaciona moć
    0

    Podrazumevano Re: navigacija strana u php

    Prijatelje, nije SING (engleski: pevati) nego SIGN (engleski: upisati, zabeleziti, uclaniti...), ajde nauci nesto vise...
    I nema potrebe da se petljas u tudju temu zabog sasvim drugog problema.

  8. #8
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    Ne .
    'root' je user a pass je 'a' za mysql.
    ime baze je vesti.I baza se povezuje-hocu reci ako ukucam root,onda izbaci baza nije selektovana..
    Mislim da su ti redovi ok.

  9. #9
    Zainteresovan član
    Učlanjen
    29.11.2006.
    Pol
    muški
    Poruke
    202
    Reputaciona moć
    43

    Podrazumevano Re: navigacija strana u php

    Konektovace se i tako, ali ispravno je:
    if(!mysql_select_db($base , $link))

    Ono sto tebe muci je taj query. Za pocetak izbaci ono \" i stavi $limit_str ili '$limit_str'
    Drugo , $limit_str treba da bude br. redova iz baze a tebi je $limit_str:
    $limit_str="$page_navigation*$page_post,5";
    Ovo nije broj! Ako hoces da pomnozis dve promenljive netrebaju ti navodnici vec:
    $limit_str=$page_navigation*$page_post,5;
    Dalje postoji taj ,5 koji ne moze tu da stoji....
    Dalje $page_navigation=0;
    Nula puta bilo sta je nula i broj redova (LIMIT) je tada 0

    Cela koncepcija mi je nejasna, poradi prvo na ovim stvarima pa onda postuj dalje probleme.

  10. #10
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    Za pocetak je svakako najbolje da napravis da ti stampa sve vesti na istoj strani (bez LIMIT). Pa kad ti to proradi mozes dalje da pitas
    Linux is like a wigwam. No gates, and Apache inside!

  11. #11
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    @GILL
    pa naravno da mi radi,pa sam zbog toga i zeleo da napravim tu navigaciju za vise strana..-Dovoljno je da obrisem taj limit i radi upravo to.
    @taksista
    koncepcija je nejasna,jer probam jedno pa nece,pa izmenim nesto ,i itd..zbog toga napomena za sort sto sam rekao.A sada direktno odgovori:
    za 1) odgovor je u 3postu GILL je to primetio u 2 a ja sam odgovorio da sam sva tri nacina pokusao..
    2)ukupan broj redova iz baze je
    $q="SELECT count(*) FROM novosti";
    $r=mysql_query($q);
    $quers=mysql_fetch_row($r);
    echo "$total_num_user=$quers[0]";
    a $limit_str= daje oznaku koja ide pored LIMIT napr (...LIMIT 0,5"; )
    3) ovo sto pitas za 5-prvo je pisalo
    $limit_str="$page_navigation*$page_post,$page_post ";
    a onda sam pravio i pokusavao varijacije pa stavio 5(krajnji limit,da vidim da li ce to da odradi)stampalo je samo prvih 5(sto je i ok)
    4)moraju navodnice -pokusao bez i javlja fatal error..
    5)da ne treba to 5 tu da stoji,ne treba,ali to je bio pokusaj da vidim da li ce da radi..izvinite zaboravio da vratim
    6)i konacno za 0*nesto je 0 i koncepcija-korostio sam primer iz knjige pa eto direktnih kodova
    //////////////////////////////////////////////////////////
    if(empty($cur_page)) {
    $cur_page = 0;
    }
    $limit_str = "LIMIT ". $cur_page * $records_per_page .
    ", $records_per_page";
    $query = "SELECT usernumber, userid, username FROM $user_tablename
    $order_by_str $sort_order_str $limit_str";

    $result = mysql_query($query);
    ////////////////////////////////////////////////////////////////////////////
    $cur_page je $page_navigation-trenutni broj strane
    $records_per_user je kod mene $page_post -duzina strane(to je ono 5 cuveno)
    ----------------------------------------------------------------------------------------------------------------------
    valjda je sada jasnije za tumacenje..Isto mozete predloziti svoju varijantu za navigaciju

  12. #12
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    Nadam se da ne trazis da ti ispljunemo gotovu skriptu. Nego ajd redom.

    1. izbaci brojac u while i stavi:
    while(list( $naslov, $tekst, $introtekst, $idnovost, $autor, $datum ) = @mysql_fetch_row($result) ){
    .
    .
    .
    }

    2. Da se ne bi mucio sa \" pocni da koristis tzv HEREDOC tj. umesto onih echo-a u while-u stavis:
    $html = <<<HTML
    {ovde pises sasvim normalno HTML}
    {pa kad zavrsis stavis ovo ispod}
    HTML;
    echo $html;

    !!!tipicna greska br.1: iza <<<HTML mora ici Enter tj. novi red
    !!!tipicna greska br.2: HTML; mora počinjati u novom redu (bez tabova ispred)

    3. napiši u par rečenica (ili ako znas pomocu dijagrama za algoritme) šta treba da radi skripta - tako je lakše dok učiš.

    4. nikada nemoj smetnuti s uma da je programiranje misaoni proces (opada kosa!), pa stoga sve dok ti u glavi ne slozis kako program treba da radi - sansa da proradi nasumicnim izmenama je vrlo mala
    Poslednji put ažurirao/la Gill Bates : 21.07.2007. u 23:47
    Linux is like a wigwam. No gates, and Apache inside!

  13. #13
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    1) uradio sam i isto radi kao sa mojim kodom..
    2) Nisam iskusan u php vodama,pa je bolje da se drzim odvajanja php i html..meni je lakse tako,u analiziranju redova kodova..a to ne bi nista promenilo
    3) & 4) to je ok. Ja sam koristio gotov primer iz knjige,to mi je bio orjentir..hteo sam samo da se vidi zasto to ne radi..

  14. #14
    Zainteresovan član
    Učlanjen
    29.11.2006.
    Pol
    muški
    Poruke
    202
    Reputaciona moć
    43

    Podrazumevano Re: navigacija strana u php

    Kao prvo, tvoja recenica sve govori :koncepcija je nejasna,jer probam jedno pa nece,pa izmenim nesto ,i itd..
    Ne mozes tek tako da puknes totalno pobrkani kod posle tvojih neuspelih pokusaja i da ocekujes da se tu neko snadje.
    Na dobijene odgovore reagujes kratko 'nije to' i idemo dalje a da pritom ni malo ne razmislis o tome...Ja ti ceo kod necu pisati, ali hocu da ti pomognem ako zelis da se potrudis.


    Sad cu ponovo pokusati da ti objasnim, a ti pazljivo procitaj (ako treba i par puta).

    Imas problem sa tim upitom a sve zbog toga sto ti LIMIT nije dobar, a sve zbog toga sto si zabrljao promenljivu $limit_str, a pored toga ti je $page_navigation=0 , a pored toga linkovi nisu dobri. Uh!

    LIMIT treba da bude tipa LIMIT 0 , 5 ----- izlistaj prvih 5 redova (zato stoji DESC da bi bilo poslednjih 5 unosa)
    ili LIMIT 5 , 10 ----- od 5-og do 10-og reda itd.

    Sad ti postavi pre tog upita echo $limit_str pa ces da vidis sta saljes na LIMIT.

    $limit_str="$page_navigation*$page_post,5";
    Ne znam kako je ovo zamisljeno da radi, ali dok imas ove navodnike gore $page_navigation i $page_post se NECE pomnoziti nego ces dobiti nesto kao 0*5 umesto 0. Kako si ti dobio fatal error kada si skinuo navodnike to samo ti znas. Ona petica na kraju unosi jos vise zabune i trebao bi to da resis lakse.

    Po meni je najjednostavnije da na LIMIT saljes dve promenljive ovako:
    Kod:
    $result=mysql_query("SELECT * FROM novosti ORDER BY idnovost DESC LIMIT $limit_str , $page_post")
    gde ti je : $limit_str=$page_navigation*$page_post;

    Time ce ti upit proraditi i neces dobijati onaj warning, ali imas jos dosta toga da ispravis.

    Napisao sam ti 0*nesto=uvek 0 zbog cega?
    $page_navigation=0
    I na svakoj strani ce $page_navigation biti 0 i stalno ces dobijati ispis iz baze od 0 do 5.
    Nula treba da bude samo za prvu stranu da bi dobio poslednjih 5 redova, a za svaku sledecu stranu mora da se pomera za tih 5. Jasno? Ako ti ovo nije jasno procitaj jos par puta da bi shvatio sledeci korak.

    Moras obrisati taj red i staviti ovako nesto (ili prouci dobro primer iz knjige pa uradi na njihov nacin) :
    [php]
    if (!isset($_GET['page_navigation'])) //Ako ne postoji $page_navigation
    $page_navigation=0; // postavi $page_navigation na nula (ako je prva strana)
    else
    $page_navigation = $_GET['page_navigation']; //pokupi vrednost $page_navigation
    [/php]
    Ovo moras imati da bi ti se na svakoj strani upit izvrsavao drugacije, odnosno da bi dobijao potrebne zapise iz baze!
    U suprotnom procitaj ponovo ono iznad sta se desava kada je ta promenljiva uvek 0 (kao u tvom kodu).

    $page_navigation dobijas iz onih linkova dole i tu imas greske:

    echo "<a href=\"$PHP_SELF?$page_navigation=$prev_page\">prethodna strana</a>";
    treba:
    echo "<a href=\"$PHP_SELF?page_navigation=$prev_page\">pret hodna strana</a>";

    Cini mi se da imas i sintaksnu gresku:
    $last_page=$total_num_page-1;
    treba:
    $last_page=$total_num_pages-1;

    Ako sve ovo lepo odradis ostaje ti samo da se pozabavis matematikom da bi sve radilo ok.

  15. #15
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    Ok.Radi..HVALA
    fatal error je sigurno bilo zbog " , " kod limita..
    a page_navigation sam resio sa
    if (empty($page_navigation) sto mu dodje na isto
    U svakom slucaju na mnoge stvari si mi skrenuo paznju.Narocito ovo
    else {
    $page_navigation = $_GET['page_navigation'];}
    Jedno pitanje za edukaciju..Ovo se strucno zove ""pagination",sad se setih.Pa me zanima na koje nacine moze da se napravi? Tacnije jel postoje neki primeri gde nema baze??Ili recimo jel postoji neki laksi nacin da se napravi??Ili je ovo uglavnom standardna procedura za navigaciju(ne gledam razliku u broju prikazivanja)??

  16. #16
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    Citat Original postavio red boy
    2) Nisam iskusan u php vodama,pa je bolje da se drzim odvajanja php i html..meni je lakse tako,u analiziranju redova kodova..a to ne bi nista promenilo
    Nista ne bi promenilo? A vidi dole.

    Sve ovo:

    $i=0;
    while ($i < $num) {

    $naslov=mysql_result($result,$i,"naslov");
    $tekst=mysql_result($result,$i,"tekst");
    $introtekst=mysql_result($result,$i,"introtekst");
    $idnovost=mysql_result($result,$i,"idnovost");
    $autor=mysql_result($result,$i,"autor");
    $datum=mysql_result($result,$i,"datum");


    echo "<p class=\"xbig\">$naslov</p>";
    echo "<p class=\" expanded style 2\">$introtekst ...</p>";
    echo "<a href=\"full.php?id=$idnovost\">"."<p class=\" justified\">cela vest...</p></a>";
    echo "<p class=\" small style3\">$autor</p>";
    echo "<p class=\"small style3\">datum: $datum </p><br>";
    echo "<hr width=\"80%\"><br>";
    $i++;
    };

    stane u ovo

    while(list( $naslov, $tekst, $introtekst, $idnovost, $autor, $datum ) = @mysql_fetch_row($result) ){
    $html = <<<HTML
    <p class="xbig">$naslov</p>
    <p class=" expanded style 2">$introtekst ...</p>
    <a href="full.php?id=$idnovost">
    <p class=" justified">cela vest...</p>
    </a>
    <p class=" small style3">$autor</p>
    <p class="small style3">datum: $datum </p><br>
    <hr width="80%"><br>
    HTML;
    echo $html;
    }

    Umesto <<<HTML moze da stoji <<<STA_GOD_HOCES_ALI_BEZ_YU_SLOVA

    Razmisli! Deo PHP koda kojim hoces da Web browseru ispljunes HTML ovako je kanda malko pregledniji
    Linux is like a wigwam. No gates, and Apache inside!

  17. #17
    Zainteresovan član
    Učlanjen
    29.11.2006.
    Pol
    muški
    Poruke
    202
    Reputaciona moć
    43

    Podrazumevano Re: navigacija strana u php

    Citat Original postavio red boy
    Jedno pitanje za edukaciju..Ovo se strucno zove ""pagination",sad se setih.Pa me zanima na koje nacine moze da se napravi? Tacnije jel postoje neki primeri gde nema baze??Ili recimo jel postoji neki laksi nacin da se napravi??Ili je ovo uglavnom standardna procedura za navigaciju(ne gledam razliku u broju prikazivanja)??
    To sto imas je otprilike najprostiji (standardni) primer kad vuces podatke iz baze. Naravno da moze na mnogo nacina da se odradi, sve zavisi od potrebe.
    Podaci nisu uvek smesteni u bazi. Mogu biti smesteni u nekom direktorijumu (npr. ako podaci o slikama nisu u bazi , a treba ti paginacija za te slike) ili kada vadis podatke iz nekog .txt fajla onda se koristi fopen() fread() i ostale funkcije umesto upita, ali princip ostaje isti.

  18. #18
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    Mada je bez baze potpuno nazadno. SQL serveri koji opsluzuju baze podataka takodje prozivaju fajlove, ali mnogo brze.
    Linux is like a wigwam. No gates, and Apache inside!

  19. #19
    Zainteresovan član red boy (avatar)
    Učlanjen
    06.10.2004.
    Pol
    muški
    Lokacija
    Nis
    Poruke
    346
    Reputaciona moć
    52

    Podrazumevano Re: navigacija strana u php

    Posto sam postavio pitanje kakve sve navigacije mogu da budu,resih da isprobam..i vrtim se par dana.
    Tacnije imam 18 slika u folderu..Napravio sam da pokazuje po 4 u redu (ima 5 reda)..
    Sada bih da pokazuje po 16 na strani..Bilo bi dve strane ukupno..Napravio sam navigaciju istu kao u gornjem primeru za bazu..
    Ali ima tu je razlika u limitu(kod baze je to lako reseno LIMIT).
    Pokusao sam ovako
    $total_img=16;//broj slika po strani
    $total=0;
    if($total<=$total_img*$page_number)//$page_number pokazuje na kojoj smo strani
    {
    $total++;

    ide uslov za 4 u redu i stampa slike
    }

    Naravno ovo stampa samo prvih 16.A na drugoj strani poazuje sve slike-od prve do poslednje jer je limit 2*16=32,samo sto ponovo prikazuje od prve.
    Koja je bi bila ideja da resim LIMIT ??
    Pretpostavljam da ima neka procedura resavanja problema,kao kod baza.Skinuo sam jedan primer sa neta,ali je dosta komplikovan pa sam se pogubio u kodovima.
    Poslednji put ažurirao/la red boy : 04.08.2007. u 11:39

  20. #20
    Primećen član Gill Bates (avatar)
    Učlanjen
    11.05.2003.
    Pol
    muški
    Lokacija
    Bgd
    Poruke
    603
    Reputaciona moć
    60

    Podrazumevano Re: navigacija strana u php

    U tebe je sinko usao Necastivi!

    Ceo svet koristi baze, a ti bas zapeo da radis bez njih. Probaj, ne boli, nece maca da ti odgrize jezik.
    Linux is like a wigwam. No gates, and Apache inside!

Slične teme

  1. Tamna strana...
    Autor Nesi u forumu Romantika
    Odgovora: 296
    Poslednja poruka: 13.11.2012., 00:32
  2. strana...
    Autor rile_laki_oblak u forumu Arhiva
    Odgovora: 31
    Poslednja poruka: 16.11.2007., 16:15
  3. web strana
    Autor damba u forumu Softver
    Odgovora: 1
    Poslednja poruka: 14.03.2004., 11:33

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •