Php Magento,getProductUrl()返回相同的url

Php Magento,getProductUrl()返回相同的url,php,magento,magento-1.9,Php,Magento,Magento 1.9,我正在努力在购物车页面上显示x数量的相关产品 这是我目前的代码 $cart = Mage::getModel('checkout/cart')->getQuote(); $c = count($cart); if($c != 0) { $c = $c - 1; $rand = rand(0, $c); $i = 0;

我正在努力在购物车页面上显示x数量的相关产品

这是我目前的代码

$cart = Mage::getModel('checkout/cart')->getQuote();
            $c = count($cart);
            if($c != 0) {
                $c = $c - 1;
                $rand = rand(0, $c);
                $i = 0;
                    foreach ($cart->getAllItems() as $item) {
                        if($i == $c) {
                            $productId = $item->getProduct()->getId();
                            $model = Mage::getModel('catalog/product');
                            $product = $model->load($productId);
                            $allRelatedProductIds = $product->getRelatedProductIds();

                            $rc = count($allRelatedProductIds) - 1;
                            $rand = rand(0, $rc);
                            $relatedProduct = $model->load($allRelatedProductIds[$rand]);
                            echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
                     foreach($allRelatedProductIds as $prod) {
                                $p = $model->load($prod);
                                echo "<a href='".$p->getProductUrl()."'>";
                                echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
                                echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
                                echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
                                echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";                          
                                echo "</div>";
                                echo "</a>";
                            } 

                        }
                      $i++;
                    }
            }
$cart=Mage::getModel('checkout/cart')->getQuote();
$c=计数($cart);
如果($c!=0){
$c=$c-1;
$rand=rand(0,$c);
$i=0;
foreach($cart->getAllItems()作为$item){
如果($i==$c){
$productId=$item->getProduct()->getId();
$model=Mage::getModel('catalog/product');
$product=$model->load($productId);
$AllRelatedProductId=$product->GetRelatedProductId();
$rc=计数($AllRelatedProductID)-1;
$rand=rand(0,$rc);
$relatedProduct=$model->load($allrelatedProductId[$rand]);
echo“也许你想试试这些”;
foreach($AllRelatedProductId作为$prod){
$p=$model->load($prod);
回声“;
} 
}
$i++;
}
}
这几乎可以100%工作,问题是$p->getProductUrl()只由循环中的第一个产品填充,并且为所有顺序产品提供了错误的url

我看不出上面有什么问题,希望有人来看看

谢谢

请尝试下面的代码

$cart = Mage::getModel('checkout/cart')->getQuote();
        $c = count($cart);
        if($c != 0) {
            $c = $c - 1;
            $rand = rand(0, $c);
            $i = 0;
                foreach ($cart->getAllItems() as $item) {
                    if($i == $c) {
                        $productId = $item->getProduct()->getId();
                        $model = Mage::getModel('catalog/product');
                        $product = $model->load($productId);
                        $allRelatedProductIds = $product->getRelatedProductIds();

                        $rc = count($allRelatedProductIds) - 1;
                        $rand = rand(0, $rc);
                        $relatedProduct = $model->load($allRelatedProductIds[$rand]);
                        echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
                 foreach($allRelatedProductIds as $prod) {
                            $p = Mage::getModel("catalog/product")->load($prod);
                            echo "<a href='".$p->getProductUrl()."'>";
                            echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
                            echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
                            echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
                            echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";                          
                            echo "</div>";
                            echo "</a>";
                        } 

                    }
                  $i++;
                }
        }
$cart=Mage::getModel('checkout/cart')->getQuote();
$c=计数($cart);
如果($c!=0){
$c=$c-1;
$rand=rand(0,$c);
$i=0;
foreach($cart->getAllItems()作为$item){
如果($i==$c){
$productId=$item->getProduct()->getId();
$model=Mage::getModel('catalog/product');
$product=$model->load($productId);
$AllRelatedProductId=$product->GetRelatedProductId();
$rc=计数($AllRelatedProductID)-1;
$rand=rand(0,$rc);
$relatedProduct=$model->load($allrelatedProductId[$rand]);
echo“也许你想试试这些”;
foreach($AllRelatedProductId作为$prod){
$p=Mage::getModel(“目录/产品”)->加载($prod);
回声“;
} 
}
$i++;
}
}
请尝试下面的代码

$cart = Mage::getModel('checkout/cart')->getQuote();
        $c = count($cart);
        if($c != 0) {
            $c = $c - 1;
            $rand = rand(0, $c);
            $i = 0;
                foreach ($cart->getAllItems() as $item) {
                    if($i == $c) {
                        $productId = $item->getProduct()->getId();
                        $model = Mage::getModel('catalog/product');
                        $product = $model->load($productId);
                        $allRelatedProductIds = $product->getRelatedProductIds();

                        $rc = count($allRelatedProductIds) - 1;
                        $rand = rand(0, $rc);
                        $relatedProduct = $model->load($allRelatedProductIds[$rand]);
                        echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
                 foreach($allRelatedProductIds as $prod) {
                            $p = Mage::getModel("catalog/product")->load($prod);
                            echo "<a href='".$p->getProductUrl()."'>";
                            echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
                            echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
                            echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
                            echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";                          
                            echo "</div>";
                            echo "</a>";
                        } 

                    }
                  $i++;
                }
        }
$cart=Mage::getModel('checkout/cart')->getQuote();
$c=计数($cart);
如果($c!=0){
$c=$c-1;
$rand=rand(0,$c);
$i=0;
foreach($cart->getAllItems()作为$item){
如果($i==$c){
$productId=$item->getProduct()->getId();
$model=Mage::getModel('catalog/product');
$product=$model->load($productId);
$AllRelatedProductId=$product->GetRelatedProductId();
$rc=计数($AllRelatedProductID)-1;
$rand=rand(0,$rc);
$relatedProduct=$model->load($allrelatedProductId[$rand]);
echo“也许你想试试这些”;
foreach($AllRelatedProductId作为$prod){
$p=Mage::getModel(“目录/产品”)->加载($prod);
回声“;
} 
}
$i++;
}
}

为什么要使用这个if子句
if($i==c)
?似乎您无法使用此条款访问其他产品。其目的是在购物车中随机选择一个产品,然后仅显示相关产品。目前,在我设置以下内容时,它只选择购物车中的最后一个产品。为什么要使用if子句
if($i==c)
?似乎您无法使用此条款访问其他产品。其目的是在购物车中随机选择一个产品,然后仅显示相关产品。目前,这只是选择了购物车中的最后一个产品,而我正在设置下面的。