PHP Select 为 Smarty
PHP Select for Smarty
是否可以在现有 Select 中制作第二个 Select?
我的php代码
$stmt = $handler->prepare('SELECT id,subcat_name FROM subcategory WHERE cat_id='.$cat_id.' ORDER BY sort DESC');
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
$subcats[]=$row;
}
$smarty->assign('subcat',$subcats);
模板代码
<table border="0" width="100%">
{* start counter *}
{counter start=1 assign="cntval"}
<tr>
{foreach item=row from=$subcat}
<td width="100%">
<table width="50%" border="0" cellspacing="5">
<tr>
<td align="center" valign="top"><a class="subcatlink" href="index.php?view=subcat&id={$row->id}">{$row->subcat_name}(HERE I WANT INSERT THE RESULT FROM THE SECOND SELECT)</a></td>
</tr>
</table>
</a>
</td>
{if ($cntval mod 2) eq 0}
</tr><tr>
{/if}
{* raise counter *}
{counter}
{/foreach}
</tr>
</table>
我可以在什么地方插入新的 select?
感谢帮助
循环中的 $row->id 将作为第二个结果的键。
使用 'siteid' 作为键创建一个 $no_comments 数组,这样您就可以通过调用 $no_comments.$siteid.
在 smarty 循环中访问它们
编辑:
所以你有两个数组 $comments 和 $sites (你也可以将 id 指定为键,这样你就不必在 Smarty 循环中分配变量)。
在 Smarty 循环中:
你不能直接做 $comments.$row->id。您必须首先分配 $row->id,例如 {assign var='siteid' value=$row->id},然后您可以调用 $comments.$siteid.
好的,我已经做到了。网站的结果已列出,但我没有看到评论数 @JoeS
$stmt = $handler->prepare("SELECT * FROM sites WHERE subcat_id = '$subcat_id' AND status = 1 ORDER BY RAND()");
$stmt->execute();
$no=$stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
$site_id = $row->id;
$sites[]=$row;
$stmt2 = $handler->prepare("SELECT id FROM comments WHERE site_id = '$site_id' AND status = 1");
$stmt2->execute();
$no_Comment=$stmt2->rowCount();
$smarty->assign('no_Comment',$no_Comment);
}
$smarty->assign('site',$sites);
这样对吗?
$stmt = $handler->prepare("SELECT * FROM sites WHERE subcat_id = '$subcat_id' AND status = 1 ORDER BY RAND()");
$stmt->execute();
$no=$stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
$site_id = $row->id;
$sites[]=$row;
$stmt2 = $handler->prepare("SELECT id FROM comments WHERE site_id = '$site_id' AND status = 1");
$stmt2->execute();
$no_Comment=$stmt2->rowCount();
$comments[$site_id]=$no_Comment;
}
$smarty->assign('site',$sites);
$smarty->assign('comments',$comments);
是否可以在现有 Select 中制作第二个 Select?
我的php代码
$stmt = $handler->prepare('SELECT id,subcat_name FROM subcategory WHERE cat_id='.$cat_id.' ORDER BY sort DESC');
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
$subcats[]=$row;
}
$smarty->assign('subcat',$subcats);
模板代码
<table border="0" width="100%">
{* start counter *}
{counter start=1 assign="cntval"}
<tr>
{foreach item=row from=$subcat}
<td width="100%">
<table width="50%" border="0" cellspacing="5">
<tr>
<td align="center" valign="top"><a class="subcatlink" href="index.php?view=subcat&id={$row->id}">{$row->subcat_name}(HERE I WANT INSERT THE RESULT FROM THE SECOND SELECT)</a></td>
</tr>
</table>
</a>
</td>
{if ($cntval mod 2) eq 0}
</tr><tr>
{/if}
{* raise counter *}
{counter}
{/foreach}
</tr>
</table>
我可以在什么地方插入新的 select? 感谢帮助
循环中的 $row->id 将作为第二个结果的键。
使用 'siteid' 作为键创建一个 $no_comments 数组,这样您就可以通过调用 $no_comments.$siteid.
在 smarty 循环中访问它们编辑: 所以你有两个数组 $comments 和 $sites (你也可以将 id 指定为键,这样你就不必在 Smarty 循环中分配变量)。
在 Smarty 循环中: 你不能直接做 $comments.$row->id。您必须首先分配 $row->id,例如 {assign var='siteid' value=$row->id},然后您可以调用 $comments.$siteid.
好的,我已经做到了。网站的结果已列出,但我没有看到评论数 @JoeS
$stmt = $handler->prepare("SELECT * FROM sites WHERE subcat_id = '$subcat_id' AND status = 1 ORDER BY RAND()");
$stmt->execute();
$no=$stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
$site_id = $row->id;
$sites[]=$row;
$stmt2 = $handler->prepare("SELECT id FROM comments WHERE site_id = '$site_id' AND status = 1");
$stmt2->execute();
$no_Comment=$stmt2->rowCount();
$smarty->assign('no_Comment',$no_Comment);
}
$smarty->assign('site',$sites);
这样对吗?
$stmt = $handler->prepare("SELECT * FROM sites WHERE subcat_id = '$subcat_id' AND status = 1 ORDER BY RAND()");
$stmt->execute();
$no=$stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
$site_id = $row->id;
$sites[]=$row;
$stmt2 = $handler->prepare("SELECT id FROM comments WHERE site_id = '$site_id' AND status = 1");
$stmt2->execute();
$no_Comment=$stmt2->rowCount();
$comments[$site_id]=$no_Comment;
}
$smarty->assign('site',$sites);
$smarty->assign('comments',$comments);