-1

我有一个与美德玛特电子商务相关的 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
   }
}
?>

但是,我不能 substr 产品名称的输出,如果我把<?php substr($db->p("product_name"), 0 12) ?>substr 完全忽略并且整个名称仍然输出 - 任何人都知道为什么?

4

2 回答 2

3

我怀疑$db->p直接打印名称,而不是返回它。您还缺少一个echobefore substr..。代码应该如下所示:

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

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

于 2012-04-23T09:17:37.330 回答
2

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

于 2012-04-23T09:16:19.407 回答