[英]PHP SMARTY section loops
在解釋問題之前,讓我先輸入代碼。
的PHP
$pro_attr = $pdo->prepare("SELECT * FROM `product_attributes` WHERE pat_product = :id GROUP BY pat_group");
$pro_attr-> bindValue(':id', $_GET['id']);
$pro_attr-> execute();
$data = array();
while($pro_attr_res = $pro_attr->fetch()){
$nameattrGroup = $pdo->prepare("SELECT * FROM `attribute_groups` WHERE atg_id = :id");
$nameattrGroup-> bindValue(':id', $pro_attr_res['pat_group']);
$nameattrGroup-> execute();
$nameattrGroup_res = $nameattrGroup->fetch();
$atrGrpName = $nameattrGroup_res['atg_name'];
$selectAttr = $pdo->prepare("SELECT * FROM `attributes` WHERE atr_group = '$pro_attr_res[pat_group]'");
$selectAttr-> execute();
while($selectAttr_res = $selectAttr->fetch()){
$patValue = $pdo->prepare("SELECT * FROM `product_attributes` WHERE pat_id = '$selectAttr_res[atr_id]'");
$patValue-> execute();
$patValue_res = $patValue->fetch();
$data[$atrGrpName][] = $selectAttr_res['atr_name'];
$data[$atrGrpName][] = $patValue_res['pat_value'];
}
}
$smarty->assign('attrs', $data);
聰明的
{foreach from=$attrs key=atrGroup item=atrs}
<h3>{$atrGroup}</h3>
<table class="table table-striped table-hover">
{section loop=$atrs name=d}
<tr>
<td class="col-md-4">{$atrs[d]}</td>
<td></td>
</tr>
{/section}
</table>
{/foreach}
好的,所以現在這里{$atrs[d]}
打印$selectAttr_res['atr_name']
和$patValue_res['pat_value']
同時創建一個新的<tr>
。 我希望這兩個顯示在兩個<td>
的同一<tr>
中。 像這樣:
<tr>
<td>Value of `$selectAttr_res['atr_name']`</td>
<td>Value of `$patValue_res['pat_value']`</td>
</tr>
怎么做? 請幫忙。
更改從數據庫獲取數據的代碼將是最簡單的:
// code
$data[$atrGrpName][] = [$selectAttr_res['atr_name'], $patValue_res['pat_value']];
// code
然后,您可以為每一行添加兩列:
{foreach from=$attrs key=atrGroup item=atrs}
<h3>{$atrGroup}</h3>
<table class="table table-striped table-hover">
{section loop=$atrs item=atr}
<tr>
<td class="col-md-4">{$atr[0]}</td>
<td>{$atr[1]}</td>
</tr>
{/section}
</table>
{/foreach}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.