2012-04-06 54 views
0

我在php中編寫了一個簡單的分頁代碼,但是我想在index.tpl中顯示for循環而不是在index.php中 我該怎麼辦?在smarty中循環

鏈接一些幫助:http://www.smarty.net/syntax_comparison

$perPage = 10; 
$PaginationSql = mysql_query("SELECT COUNT('ID') FROM VA_VIDEOS"); 
$Pages = ceil(mysql_result($PaginationSql, 0)/$perPage); 
$Page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
$Start = ($Page - 1) * $perPage; 
$postDate = date("d-m-Y"); 
srand(time()); 
$randomNum = (rand()%20); 
$sql = mysql_query("SELECT * FROM VA_VIDEOS ORDER BY ID DESC LIMIT ".$Start.", ".$perPage.""); 
while ($Videos = mysql_fetch_array($sql)) 
{ 

$ShowVideos[] = $Videos; 

} 
if($Page >= 1 && $Page<=$Pages){ 
echo "<div style='margin-left:20px;'>"; 
if($Page != 1){print "<b class='pagination'><a href='?page=1'>First</a></b>";} 

    for($x=1; $x<=$Pages; $x++){ 
    $PaginationNum = ($x == $Page) ? "<b class='page-in'>".$x."</b>" : "<a href='?page=".$x."' class='pagination'>".$x."</a>"; 
    echo $PaginationNum; 

    } 

    if($Page != $Pages){ 
$LastPage = "<b class='pagination'><a href='?page=".$Pages."'>Last</a></b>"; 
echo $LastPage; 
} 
echo "</div>"; 
} else { 

    print "Error!"; 

} 
+0

http://www.smarty.net/docs/en/language.function.foreach.tpl – c69 2012-04-06 22:37:25

+0

什麼是在iPhone部分做的PHP問題?標記錯誤? – 2012-04-07 09:16:20

回答

2

只要將你的腳本,你呼應的東西到index.tpl的最後一部分。

嘗試這樣的事情(使用Smarty3的foreach語法):

<?php 
// index.php 

$perPage = 10; 
// ... 
while ($Videos = mysql_fetch_array($sql)) { 
    $ShowVideos[] = $Videos; 
} 

$smarty->assign('current_page', $Page); 
$smarty->assign('pages', range($pages)); // returns: array(1, 2, 3, ..., $Pages) 

在index.tpl

{if $current_page < $pages|count} 
    <b class="pagination"><a href="?page=1">First</a></b> 
{/if} 

{foreach $pages as $page} 
    {if $page == $current_page} 
     <b class="page-in">{$page}</b> 
    {else} 
     <a href="?page={$page}" class="pagination">{$page}</a> 

    {/if} 
{/foreach} 

{if $page < $pages|count} 
    <b class="pagination"><a href="?page={$pages|count}">Last</a></b> 
{/if} 

對於額外的性能計算$pages的大小index.php併爲其分配。我只是試圖展示如何在需要時使用PHP函數作爲variable modifier

0

循環使用像這樣的

while ($Videos = mysql_fetch_array($sql)) 
{ 

$ShowVideos[] = $Videos; 

} 
$smarty->assign("video", $ShowVideos); 

的TPL文件應該是這樣的:

{section name=video loop=$video} 

<li>{$video[video].id}</li> //// will show the video id from database 


{/section}