Smarty php变量输出


Smarty php variables output

使用使用smarty 3的房地产脚本3。

我设法创建了一个从数据库中获取信息的循环。

<?php
function smarty_function_my_plugin($params,&$smarty)
{
    $con=mysqli_connect("localhost","root","","res3");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    } else {
       $result = mysqli_query($con,"SELECT * FROM res3_listings WHERE listing_type_id=5 ORDER BY views DESC");
       while($row = mysqli_fetch_array($result)) {
           $title=$row['title_1'];
           $price=$row['price'] ;
           $id=$row['listing_id'];
           $result = mysqli_query($con,"SELECT listing_photo_file FROM res3_listing_photos WHERE listing_photo_id=1");
           while($row = mysqli_fetch_array($result)) {
              $picture=$row['listing_photo_file'];
           }
           echo $title. "<br/>".$price."<br/>".$picture;
           $smarty->assign('naslov', $title);
           echo "<br>";
       }
    }
    mysqli_close($con);
    echo '<h1>Test</h1>';
}
?>

所以我把脚本放在插件文件夹中,并在脚本末尾返回TEST echo和3个变量$title,$price,$picture。使用模板{my_plugin}中的命令

但我想访问这些变量,这样我就可以在*.tpl文件中调用它们,例如:{$title}

通过这种方式,我可以将HTML部分放在.tpl文件中,然后插入该函数所需的变量。

它应该在模板文件上循环10个结果;)

理论上,您的代码已经为naslov smarty变量分配了最后一个标题。如果您想访问所有这些,您可以将其更改为附加。从理论上讲,在{my_plugin}调用之后,您可以访问{$naslov}变量中的标题。

或者,您可以在模板中返回$smarty->fetch('othertemplate.tpl'),也可以在othertemplate.tpl中使用这些变量。

为了将结果限制为最多10,可能是将limit 10附加到数据库查询的最简单方法。