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

Foreach podataka iz baze

[es] :: PHP :: Smarty template engine :: Foreach podataka iz baze

[ Pregleda: 35928 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Foreach podataka iz baze05.05.2011. u 20:15 - pre 157 meseci
Kad izvadim podatke iz baze i stavim ih u array, dobijem sledece:
Code:
Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
            [c_id] => 1
            [address] => Prva cottage
            [price] => 1
            [rooms] => 1
            [available] => 1
            [image] => 
        )

    [2] => Array
        (
            [c_id] => 2
            [address] => druga cottage
            [price] => 2
            [rooms] => 2
            [available] => 1
            [image] => 
        )

    [3] => Array
        (
            [c_id] => 3
            [address] => treca cottage
            [price] => 3
            [rooms] => 4
            [available] => 1
            [image] => 
        )

)

Ovo prosledim smartiju i onda treba da ga ispisem. Ali nikako ne mogu da provalim kako da to uradim? Citam manual, oni u primeru imaju array:
Code:
array(
                             array('phone' => '555-555-1234',
                                   'fax' => '555-555-5678',
                                   'cell' => '555-555-0357'),
                             array('phone' => '800-555-4444',
                                   'fax' => '800-555-3333',
                                   'cell' => '800-555-2222')
                             ));

i ispisuju je sa
Code:
{* key always available as a property *}
{foreach $contacts as $contact}
  {foreach $contact as $value}
    {$value@key}: {$value}
  {/foreach}
{/foreach}

{* accessing key the PHP syntax alternate *}
{foreach $contacts as $contact}
  {foreach $contact as $key => $value}
    {$key}: {$value}
  {/foreach}
{/foreach}
Ja kad ovaj kod pokusam da prilagodim mojoj (mom?) array, ili mi izbaci samo jedno slovo ili mi izbaci array(). Nije mi jasno u cemu gresim, i zasto mi bar ako upisem jedno slovo pored (cisto kao deo teksta, nema veze sa kodom) ne ispise to tri puta (ili 4, uglavnom da prodje kroz sve prve vrednosti array-a). Ne trazim da mi neko napise gotov kod, samo da me posavetuje u cemu gresim.

 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Foreach podataka iz baze05.05.2011. u 20:24 - pre 157 meseci
ovako instant, kada ti ispise jedno slovo znaci da ono sto vrtis u foreach je ustvari *string. Verovatni imas jednu dubinu visak, probaj "plice" da radis foreach.
Ako stavis foreach od 'text' on ce kao Value da ti izbaci T (ili bese ide za svako slovo ne secam se)

[Ovu poruku je menjao dakipro dana 06.05.2011. u 13:14 GMT+1]
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: Foreach podataka iz baze05.05.2011. u 21:32 - pre 157 meseci
Nije mi bas najjasnije kako?
Zar ima plice od onog prvog {foreach $contacts as $contact}? Valjda kad njega vrti, treba da provrti sva cetiri unosa, i onda sa unutrasnjim foreach-om izrotiram array iz array? Ili ja ovo pogresno kapiram?
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Foreach podataka iz baze05.05.2011. u 21:43 - pre 157 meseci
Npr
PHP
Code (php):
$smarty = new Smarty;
$tvojNiz = Array
   (
      Array
           (
               'c_id' => 1,
               'address' => 'Prva cottage',
               'price' => 1,
               'rooms' => 1,
               'available' => 1,
               'image' => null
           ),
   
       Array
           (
               'c_id' => 2,
               'address' => 'druga cottage',
               'price' => 2,
               'rooms' => 2,
               'available' => 1,
               'image' => null
           ),
   
       Array
           (
               'c_id' => 3,
               'address' => 'treca cottage',
               'price' => 3,
               'rooms' => 4,
               'available' => 1,
               'image' => null
           )
   );

$smarty->assign("tvojNiz", $tvojNiz);
$smarty->display('index.tpl');


index.tpl
Code:

{foreach $tvojNiz as $niz}
  {foreach $niz as $value}
    {$value@key}: {$value} <br />
  {/foreach}
  <hr />
{/foreach}

<hr /> ILI <hr />

{foreach $tvojNiz as $niz}
  {foreach $niz as $key => $value}
    {$key}: {$value}<br />
  {/foreach}
  <hr />
{/foreach}

<hr /> ILI <hr />

{foreach item=niz from=$tvojNiz}
  {$niz.c_id}<br />
  {$niz.address}<br />
  {$niz.price}<br />
  {$niz.rooms}<br />
  {$niz.available}<br />
  {$niz.image}<br />
<hr />
{/foreach}

<hr /> ILI <hr />

{section name=niz loop=$tvojNiz}
  {$tvojNiz[niz].c_id}<br />
  {$tvojNiz[niz].address}<br />
  {$tvojNiz[niz].price}<br />
  {$tvojNiz[niz].rooms}<br />
  {$tvojNiz[niz].available}<br />
  {$tvojNiz[niz].image}<br />
  <hr />
{/section}

...

Banned - Not available
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 09:10 - pre 157 meseci
Code:

0: Array 
ILI 
0: Array
ILI 
A
A
A
A
A
A
ILI

Evo sta mi vraca. Probao sa da menjam ovo trece, posto ono izgleda radi donekle, i da stavim
Code:

{$niz[c_id]} - vraca isto
{$niz} - vraca array
Probao sam i da uzmem bilo koju vrednost iz array (ne kroz loop, nego ovako "normalno"), prateci tutorial sa smarty.net, ali nisam uspeo. Ili sam ja retardiran, ili je ovo mnogo komplikovano :)
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 09:17 - pre 157 meseci
Pa izgleda kao da taj array ima dubinu 3 a ne 2. Ubaci {debug} u templejt pa vidi kakav tacno array dobija smarty ili probaj da dodas jos jednu foreach petlju.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 09:24 - pre 157 meseci
Postavi php kod koji koristiš za testiranje, jer ono što sam ja postavio radi kod mene.
Banned - Not available
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 11:07 - pre 157 meseci
Probao sam i tacan c/p koda koji si ostavio, i meni izbacuje ono gore sto sam napisao.
A evo mog koda sa kojim vadim stvari iz baze:
Code:

functions.php
function get_cottages(){
    $queryT = mysql_query("SELECT * FROM cottages");
    
    $cottages_array[] = array();
    while($rowT = mysql_fetch_assoc($queryT)) {
    $cottages_array[] = $rowT;
    };
    

    return $cottages_array;
    };

index.php
$cottages_array = get_cottages();
$smarty->assign('tvojNiz',"$tvojNiz");

i onda u tpl fajlu kod koji si postavio gore.

Debug mi vraca
Code:
$SCRIPT_NAME    Smarty_Variable Object (3)
->value = "/Freelancer/holiday_cottages/admin/ad..."
->nocache = false
->scope = "Global"
$base_path    Smarty_Variable Object (3)
->value = "../templates/default/admin/"
->nocache = false
->scope = "Smarty root"
$case    Smarty_Variable Object (3)
->value = "edit_cottage"
->nocache = false
->scope = "Smarty root"
$key    Smarty_Variable Object (3)
->value = 0
->nocache = false
->scope = "file:../templates/default/admin/edit_..."
$list_cottages    Smarty_Variable Object (3)
->value = "yes"
->nocache = false
->scope = "Smarty root"
$logged_in    Smarty_Variable Object (3)
->value = "1"
->nocache = false
->scope = "Smarty root"
$niz    Smarty_Variable Object (4)
->value = "Array"
->nocache = false
->scope = "file:../templates/default/admin/edit_..."
->key = 0
$smarty    Smarty_Variable Object (3)
->value = Array (1)
  section => Array (1)
    niz => Array (7)
      name => "niz"
      loop => 0
      show => false
      max => 0
      step => 1
      start => 0
      total => 0
->nocache = false
->scope = "file:../templates/default/admin/edit_..."
$tvojNiz    Smarty_Variable Object (3)
->value = "Array"
->nocache = false
->scope = "Smarty root"
$value    Smarty_Variable Object (4)
->value = "Array"
->nocache = false
->scope = "file:../templates/default/admin/edit_..."
->key = 0
print_r onog array-a sto dobijam kad izvucem podatke iz baze mi vraca onaj array koji sam napisao u prvoj poruci.
Probao sam da ocistim kes, da proverim da on mozda ne pravi problem. Smarty je verzija 3.0.7
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 11:23 - pre 157 meseci
Ja nisam ovako napisao
Code:
$smarty->assign('tvojNiz',"$tvojNiz");


Koristi
Code:
$smarty->assign('tvojNiz', $tvojNiz);

Banned - Not available
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 12:02 - pre 157 meseci
Radi :) Ako dobro kapiram, ja sam smartiju slao string umesto array, ili? A kad bi sad ovaj array imao jos jednu dubinu, kako bi se ona listala (ne treba mi za ovo nego me cisto zanima da bih ukapirao kako sta funkcionise}? Recimo, ovaj primer me zanima:

Code:
{foreach $tvojNiz as $niz}
  {foreach $niz as $value}
    {$value@key}: {$value} <br />
  {/foreach}
  <hr />
{/foreach}

I da vidimo da li sam dobro ovo shvatio. U prvom foreach-u mi dodeljujemo prvi array iz glavnog array-a varijabli niz. Onda u drugom samo prodjemo kroz novi array i ispisemo vrednosti?
Znaci kad bi imalo jos jednu dubinu islo bi ovako?
Code:

{foreach $tvojNiz as $niz}
  {foreach $niz as $niz2}
    {foreach $niz2 as $value}
      {$value@key}: {$value} <br />
    {/foreach}
  {/foreach}
  <hr />
{/foreach}
}
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 12:18 - pre 157 meseci
Da. Da.

Samo još nešto, umesto
Code:
$cottages_array[] = array();

stavi
Code:
$cottages_array = array();

Da ti ne bi uvek na prvo mesto u nizu stavljao prazan niz.
Banned - Not available
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: Foreach podataka iz baze06.05.2011. u 19:57 - pre 157 meseci
Super, stvarno mnogo hvala na pomoci, najzad sam razumeo ovo.
 
Odgovor na temu

[es] :: PHP :: Smarty template engine :: Foreach podataka iz baze

[ Pregleda: 35928 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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