php Smarty段循环2为空<;td>;正在不必要地创建
我试图在我的站点中列出来自PHP的嵌套while循环数据。我正在使用smarty模板引擎。我能够传输数据并成功列出它们。一切都按需要进行,但出现了一个奇怪的问题。我以前从未得到过这个。在我的smarty模板中,在第一个php Smarty段循环2为空<;td>;正在不必要地创建,php,html,smarty,smarty3,smarty2,Php,Html,Smarty,Smarty3,Smarty2,我试图在我的站点中列出来自PHP的嵌套while循环数据。我正在使用smarty模板引擎。我能够传输数据并成功列出它们。一切都按需要进行,但出现了一个奇怪的问题。我以前从未得到过这个。在我的smarty模板中,在第一个中循环部分下,会自动创建一个以空格结尾的块,在第二个中循环一个以空格开头的块 PHP代码 // Fetch Product Specification Groups $pro_attr = $pdo->prepare("SELECT * FROM product_attrib
中循环部分下,会自动创建一个以空格结尾的块
,在第二个
中循环一个以空格开头的块
PHP代码
// Fetch Product Specification Groups
$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 = :group");
$selectAttr-> bindValue(':group', $pro_attr_res['pat_group']);
$selectAttr-> execute();
while($selectAttr_res = $selectAttr->fetch()){
$patValue = $pdo->prepare("SELECT * FROM product_attributes WHERE pat_id = :id");
$patValue-> bindValue(':id', $selectAttr_res['atr_id']);
$patValue-> execute();
$patValue_res = $patValue->fetch();
$v1 = $selectAttr_res['atr_name'];
$v2 = $patValue_res['pat_value'];
$data[$atrGrpName][] = $selectAttr_res;
$data[$atrGrpName][] = $patValue_res;
// echo "<pre>";
// print_r($data);
}
}
$smarty->assign('attrs', $data);
电流输出
$data[$atrGrpName][] = $selectAttr_res;
$data[$atrGrpName][] = $patValue_res;
这些空白的
块显示错误注意:未定义的索引:E:\xampp\htdocs\flexicart\tmp\903f4c940c0e368df27c7e92a672b94ff4534717_0.file.product.tpl.cache.php中的pat_值和注意:未定义的索引:atr_名称E:\xampp\htdocs\flexicart\tmp\903f4c940c0e368df27c7e92a672b94ff4534717_0.file.product.tpl.cache.php,第161行
。但是由于我使用了| default
,错误被隐藏了,但是仍然存在创建那些额外的
块的错误。请帮助。问题来自这里:
$data[$atrGrpName][] = array('atr_name' => $selectAttr_res['atr_name'], 'pat_value' => $patValue_res['pat_value']);
这会将atr_名称和pat_值放在数组中的连续行中,这是您要掩盖的错误的原因
我不确定您在其他地方可能需要$selectAttr\u res
和$patValue\u res
中的哪些其他数据,但针对手头的问题,您可以执行以下操作
哦,可爱。。。。完美解决。。。这正是我在这里需要的。非常感谢:)
Attribute 1
Value 1
Attribute 2
Value 2
$data[$atrGrpName][] = $selectAttr_res;
$data[$atrGrpName][] = $patValue_res;
$data[$atrGrpName][] = array('atr_name' => $selectAttr_res['atr_name'], 'pat_value' => $patValue_res['pat_value']);