-1

virtuemarteコマースに関連する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を入れても、製品名の出力をsubstrすることはできません。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 に答える