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: 33151 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

spezia

Član broj: 134818
Poruke: 355
160.99.38.*



+6 Profil

icon Ispis podataka iz baze sa Smarty-jem15.03.2008. u 10:19 - pre 195 meseci
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";}
    
?>


 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

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



+13 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem16.03.2008. u 12:15 - pre 195 meseci
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 :-)
 
Odgovor na temu

spezia

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



+6 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem17.03.2008. u 15:13 - pre 195 meseci
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]
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
89.216.108.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem17.03.2008. u 15:28 - pre 195 meseci
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 nemozes da pogresis... samo manual redom korak po korak...

 
Odgovor na temu

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 381
79.101.179.*



+3 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem29.07.2009. u 12:55 - pre 178 meseci
jel moguce izpisi iz baze sa smartijem ali posle svakog npr treceg ispisa da ubaci neki npr css

znaci

{section name=j loop=$categories}
{categories[j].name}
{section}

i on tako opali loop....nekih 20komada a meni treba posle 3 da ubaci css dash ...
izvodljivo ?
Say NO to pop culture!!!
Crno je uvek u modi....
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
*.adsl.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem29.07.2009. u 14:19 - pre 178 meseci
moze sa foreach itteration, a verovatno moze i koriscenjem section, pogledaj manual.
Ali sigurno mozes staviti brojac na 0, svakim krugom ga povecati za 1, i kad dodje >2, resetujes na 0. Assign je funkcija
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem05.08.2009. u 18:28 - pre 178 meseci
Jes malo zastarela tema, ali posto je ovo definitivno jedan od cescih 'problema' na koji se nailazi sa Smarty-jem, evo linka sa nekoliko vrsta resenja za ovaj problem (verovatno ce zatrebati nekom i kasnije ):

Smarty Columns Tutorial
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.dynamic.sbb.rs.



+2 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem11.03.2012. u 12:04 - pre 146 meseci
Jedno verovatno početničko pitanje, ali sa Smarty-jem sam početnik...

Imam problem sa ispisom "naših" slova iz baze...

Pokušavao sam da otkrijem o čemu se radi i na sledeći način:

u index.php napravim neki ispis bez pozivanja template-a, protrčim recimo kroz tabelu vesti i izbacim naslove, šđčćž se normalno prikazuju.
Code:

require "libs/Smarty.class.php";
require "libs/db.class.php"; // ovo nema veze sa smarty-jem i radi normalno bez korišćenja smarty-ja
$smarty=new Smarty();

// ovaj deo nema veze sa smarty-jem:
$db=new db;
$db->db_type="mysql";
$db->dir='cache';
$db->ttl=0;
$db->sql="SELECT * FROM vesti";
$db->fetch();
foreach($db->data as $row){
    echo $row['naziv'].'<br/>';
}


E, sada, ako samo dodam liniju iza svega ovoga:

Code:

$smarty->display("index.tpl")


, pri čemu index.tpl izgleda ovako:

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" href="css/main.css" type="text/css" />
<link rel="stylesheet" href="css/login.css" type="text/css" />
</head>

<body>
</body>
</html>

znači, nema ničega u njemu, onaj ispis od malopre prolupa i šđčćž više ne postoje...???

Da pojasnim, znam da se ne radi ovako, sa ovim echo u .php fajlu, ali sam to uradio samo probe radi, u realnosti pre pozivanja index.tpl postavim smarty varijable, odnosno popunim ih sadržajem, pa ih u index.tpl prikazujem, ali pošto gubim šđčćž, probao sam i ovako, na najjednostavniji mogući način i ništa...
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
*.137.202.84.customer.cdi.no.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem11.03.2012. u 13:14 - pre 146 meseci
Pa bas zato imas problem jer koristis echo ispred <HEAD> taga u HTMLu, i onda browser postavi default head koji ne podrzava utf8 tj nasa slova.
Znaci ne smes pre

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

da imas bilo kakav output, inace ti nece raditi utf8 podrska.
Tako da ovo nije problem vezan za smarty
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.dynamic.sbb.rs.



+2 Profil

icon Re: Ispis podataka iz baze sa Smarty-jem11.03.2012. u 20:12 - pre 146 meseci
Da pokušam da pojasnim, dakle kada je kod ovakav:
Code:

<?php
// load Smarty library
require("libs/Smarty.class.php");
require("libs/db.class.php");

$db=new db;
$db->db_type="mysql";
$db->dir='cache';
$db->ttl=0;
$db->sql="SELECT * FROM vesti";
$db->fetch();
foreach($db->data as $row){
    echo $row['naziv'].'<br/>';
}

$smarty=new Smarty();
$smarty->assign('content',$db->data);
$smarty->display('index.tpl');
?>


a template ovakav:

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<h2>Ovde kreće ispis iz templejta a slova šđčćž se ovde vide normalno:</h2>

<p>
{foreach from=$content item=row}
        {$row.naziv}<br/>
        {/foreach}
</p>
</body>
</html>


Dobijem dva puta ispis (jedanput iz samog php-a, drugi put iz foreach petlje u templejtu) ali je na mestu dijakritika krš i lom, dakle, ne valja enkoding na oba ispisa.

Kada poslednju liniju u php fajlu obrišem ($smarty->display('index.tpl');), dobijem samo jedanput ispis iz php-a koji ima ispravan enkoding.
Dakle, čim pokrenem template enkoding sadržaja koji vučem iz baze mi ode do đavola.

 
Odgovor na temu

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

[ Pregleda: 33151 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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