我有一个与virtmart电子商务相关的PHP / mySQL问题 - 我在VM论坛上问过,但响应很慢。
我正在使用此代码在产品页面中加载同一类别的产品,但效果不错;
<?php // find all the other products in this category
$q = "SELECT p.product_id, p.product_name, c.category_name, c.category_flypage
FROM #__{vm}_product p,#__{vm}_product_category_xref pc, #__{vm}_category c
WHERE p.product_publish='Y' AND pc.product_id = p.product_id AND pc.category_id = c.category_id AND c.category_id = '$category_id' AND p.product_id != '$product_id'
ORDER BY p.product_name ";
$db = new ps_DB;
$db->query( $q );
if( $db->next_record() ) {
echo 'Other products in the category "'.$db->f('category_name').'"<br />';
$flypage = $db->f('category_flypage');
$db->reset();
while( $db->next_record() ) {
?><a href="<?php $sess->purl(URL . "index.php?page=shop.product_details&flypage=$flypage&product_id=" . $db->f("product_id") . "&category_id=$category_id" ) ?>"><?php $db->p("product_name"); ?></a><br />
<?php
}
}
?>
但是,我不能输出产品名称的输出,如果我放置<?php substr($db->p("product_name"), 0 12) ?>
完全忽略了substr并且输出了整个名称 - 任何人都知道为什么?
答案 0 :(得分:3)
我怀疑$db->p
直接打印名称,而不是返回它。您在echo
之前也错过了substr..
。代码可能看起来像这样:
<?php echo substr($db->f('product_name'), 0, 12) ?>
这里我假设$db->f
返回字段的值,给出它在其余代码中的使用方式。
答案 1 :(得分:2)
substr不会向浏览器输出任何内容。输出(echo)调用可能隐藏在$ db对象的方法p或purl中。