Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ispis podataka iz baze sa Smarty-jem

[es] :: PHP :: Smarty template engine :: Ispis podataka iz baze sa Smarty-jem

[ Pregleda: 252 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

spezia
aleksinac,nis,srbija

Član broj: 134818
Poruke: 100
160.99.38.*



Profil

icon Ispis podataka iz baze sa Smarty-jem15.03.2008. u 10:19

Pocetnik sam sa smarty-jem.Radim primer gde sam 2 vesti upisao u bazu,i sada hocu da ih obe ,jedne ispod druge ispisem.
U mom primeru ispisuje samo jednu vest.Probao sam ,sa foreach,ali nisam uspeo.Tacnije nisam nasao dobar primer prikazivanja svih podata iz baze.
Meni treba nesto kao u FastTemplate klasi,blok ,a ne display (cela strana);
Znaci u bazi->tabela news,imam id,title,news,autor,date.

evo mog primera:
Code:

tpl:



<table width="100%" border="0" cellspacing="5" cellpadding="10">
      <tr>
    
        <th scope="col"><p class="style4">[[$TITLE]]</p>
          <div align="justify">[[$news]]
            <br />
            <span class="style7">[[$autor]]       </span><br />
            <span class="style6">[[$date]]</span></div></th>
    
      </tr>
    </table>



PHP:


<?php
include('MySmarty.php');
function prikaz()
{
    $smarty=new MySmarty();
    
                          
    $query=mysql_query("SELECT * FROM news");
    while($l=mysql_fetch_array($query)){
        $smarty->assign(array("TITLE"=>$l[title],
                               "news"=>$l[news],
                               "autor"=>$l[autor],
                               "date"=>$l[datenews]));
                        
    }
    $smarty->display("naslovna.tpl"); 
}
$link=mysql_connect('localhost','root','a');
    if($link){
        $db=mysql_select_db('turist');
        prikaz();
    }else{echo "Nije uspostavljena konekcija sa bazom";}
    
?>


15.03.2008. u 10:19 

Man-Wolf
Mihailo Joksimovic
Freelancer :P
Beograd

Član broj: 17016
Poruke: 382
*.eunet.yu.



Profil

icon Re: Ispis podataka iz baze sa Smarty-jem16.03.2008. u 12:15
Cini mi se da nisi stavio {section} ?! Tako da je logicno da prikaze samo prvi rezultat. Uglavnom, ovako bi trebao da ide kod:

Code:


tpl:
{section name=broj loop=$vesti}


Title: {$vesti[broj].title}
<br>
News: {$vesti[broj].news}
<br>
Autor: {$vesti[broj].autor}
<br>
Date: {$vesti[broj].datenews}
<br>

{/section}

PHP:


<?php
include('MySmarty.php');
function prikaz()
{
    $smarty=new MySmarty();
    
                          
    $query=mysql_query("SELECT * FROM news");
    while($l=mysql_fetch_array($query)){
        $result = $l;
    }
    $smarty->assign('vesti', $result);
    $smarty->display("naslovna.tpl"); 
}

$link=mysql_connect('localhost','root','a');
    if($link){
        $db=mysql_select_db('turist');
        prikaz();
    }else{echo "Nije uspostavljena konekcija sa bazom";}
    
?>


Sa ovakvim template-om ces dobiti rezultete ispisane jedan ispod drugog. A ti posle sredjuj izgled :-)
16.03.2008. u 12:15 

spezia
aleksinac,nis,srbija

Član broj: 134818
Poruke: 100
*.rcub.bg.ac.yu.



Profil

icon Re: Ispis podataka iz baze sa Smarty-jem17.03.2008. u 15:13
Kod mene ovo nece da proradi.
Ispisuje samo jednu vest od dve,i to samo prvo slovo od naslov,prvo slovo od tekst,prvo slovo od autor....
Code:

function prikaz()
{
    $smarty=new MySmarty();
    
                          
    $query=mysql_query("SELECT * FROM news");
    while($l=mysql_fetch_array($query)){
        $result = $l;
   //Kada sam radio sa FastTemplate klasom ovde ubacim dinamicki blok koji se ponavlja sve dok ima podataka u bazi.Sa smarty-jem sve je nelogicno ,a u dokumentaciji nikako da nadjem primer sa bazom.
    }
    $smarty->assign('vesti', $result);
    $smarty->display("naslovna.tpl"); 
}




[Ovu poruku je menjao spezia dana 18.03.2008. u 09:43 GMT+1]
17.03.2008. u 15:13 

dakipro
Dalibor Jovic
PHP Developer, SMDesign, Ciplex
Novi Sad

Član broj: 31848
Poruke: 604
89.216.108.*



Profil

icon Re: Ispis podataka iz baze sa Smarty-jem17.03.2008. u 15:28
Nevezano za konkretan problem, vidim da uporno pokusavas da povezes smarty sa bazom, sto mu dodje nekako suprotno osnovnoj nameni smartyja da razdvoji prezentacionu logiku od logike za skladistenje podataka. Znaci smarty treba da radi sa gotovim podatcima (stringovima, nizovima ili objektima) nevezano odakle ih ti "vadis" dal iz baze, text fajla ili ih usput matematicki generises, tako da ti je mozda celokupna logika pristupa malo off-track.
Iskreno, koliko se secam, section je malo komplikovaniji za petlje (iako je jelte fleksibilniji) pa mozda nije lose da probas da koristis {foreach} ?
Mislim, ovo mu dodje "skolski" primer rada sa smartyjem, nema neke nauke... kreiras niz (bilo podatcima iz baze ili rucno) odstampas taj niz i proveris da li ima odgovarajuce clanove, prosledis ga smartiju, i u smartiju foreach petljom samo istampas krajnje vrednosti (kao sto bi ga php-om provrteo kroz petlju). Znaci korak po korak, redom stampas sadrzaj niza (koristeci recimo print_r()) i ne mozes da pogresis... samo manual redom korak po korak...
17.03.2008. u 15:28 

[es] :: PHP :: Smarty template engine :: Ispis podataka iz baze sa Smarty-jem

[ Pregleda: 252 | Odgovora: 3 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.