Teiger: Übergabe an Smarty Template

Guten Tag,

aus einer mySQL DB werden Bilder für eine Bildergalerie an ein Script übertragen:

function returnGallery()
 {
  $this->db->select("pic.picture, pic.desc_".$this->language."",
        "produktkuerzel AS pk, pictures_products AS pic, lnk_product_pic AS lpp",
        "(pk.productname = '".$this->productName."')
      AND(pk.id = lpp.id_product)
      AND(lpp.id_picture = pic.id)",
         "","","","");

$bilder = array();
  while($row = $this->db->fetch_array())
  {
   $bilder[]['pic'] = $row['picture'];
      $bilder[]['thumb'] = str_replace(".jpg", "-t.jpg", $row['picture']);
   $bilder[]['txt'] = $row[desc_.$this->language];
  }

if(isset($bilder))
  {
   return $bilder;
  }
  else
   return false;
 }

Das Array $bilder wird an die Smarty Template Engine übergeben:

<div id="col3">
 <!-- Gallery: Start-->
 {if $bilder}
  {section name=i loop=$bilder}
  <p><a href="../images/shop/products/{$bilder[i].pic}" target="_blank">
   <img src="../images/shop/products/{$bilder[i].thumb}" alt="" /></a><br />
   {$bilder[i].txt}
  </p>
  {/section}
 {/if}
 <!-- Gallery: End-->
</div>

Leider werden keine Bilder angezeigt. Was ist nur los?
Danke

  1. Hallo Teiger,

    $bilder[]['pic'] = $row['picture'];
          $bilder[]['thumb'] = str_replace(".jpg", "-t.jpg", $row['picture']);
       $bilder[]['txt'] = $row[desc_.$this->language];

    Aua... der []-Operator erzeugt ein neues Element in einem Array - bei *jeder* Verwendung.

    $bild = array ();
    $bild['pic'] = $row['picture'];
    $bild['thumb'] = str_replace(".jpg", "-t.jpg", $row['picture']);
    $bild['txt'] = $row['desc_'.$this->language];
    $bilder[] = $bild;

    Viele Grüße,
    Christian