php substr被忽略了

时间:2012-04-23 09:11:41

标签: php mysql virtuemart

我有一个与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并且输出了整个名称 - 任何人都知道为什么?

2 个答案:

答案 0 :(得分:3)

我怀疑$db->p直接打印名称,而不是返回它。您在echo之前也错过了substr..。代码可能看起来像这样:

<?php echo substr($db->f('product_name'), 0, 12) ?>

这里我假设$db->f返回字段的值,给出它在其余代码中的使用方式。

答案 1 :(得分:2)

substr不会向浏览器输出任何内容。输出(echo)调用可能隐藏在$ db对象的方法p或purl中。