2010-12-22 136 views
0

我有一個問題嵌套loops.I've兩個表產品和product_option 每個產品都有一個選項,價格 示例環($ 25)與選項紅色($ .50)和黃色(75美元)。 因此,表是這樣的產品(編號,價格,描述)和product_option(product_id,optionname,optionprice) 當我從php獲取數據輸出應該看起來像這樣 環(25美元)總價25.75 紅色(0.50),黃口(.25)Php嵌套循環顯示重複值

但我的顯示輸出這樣的事情

戒指($ 25)
紅(0.50),紅色(0.50)

下面是代碼

session_start(); 
require_once './classes/cartclass.php'; 
$val = new carts(); 

While($cartContent = mysql_fetch_assoc($cartContents)) 
{ 
if($cartContent['ctsid']==session_id()) 
{ 
$cartid=$cartContent['ctid']; 
$subTotal += $cartContent['ctprice'] * $cartContent['ctqty']; 
echo $cartContent['iname']; 
echo $cartContent['mprice']; 
echo $cartContent['mdesc']; 
$count=mysql_num_rows($val->getCartopt($cartid)); 

if($count>0){ 

       $CartOpt = mysql_fetch_assoc($val->getCartopt($cartid)); 
       foreach($CartOpt as $Cartopts){ 

        echo $CartOpts."".$CartOpt['ctopname']; 
        $i++; 
        if($i==$count) 
         break; 

        } 

       } 
     } 
    } 

回答

0

我修復了你的代碼的最後部分,根本沒有任何意義。 試試這個:

session_start(); 
require_once './classes/cartclass.php'; 
$val = new carts(); 

While($cartContent = mysql_fetch_assoc($cartContents)) 
{ 
    if($cartContent['ctsid']==session_id()) 
    { 
     $cartid=$cartContent['ctid']; 
     $subTotal += $cartContent['ctprice'] * $cartContent['ctqty']; 
     echo $cartContent['iname']; 
     echo $cartContent['mprice']; 
     echo $cartContent['mdesc']; 

     if(mysql_num_rows($val->getCartopt($cartid)) > 0) 
     { 
      while ($Cartopts = mysql_fetch_assoc($val->getCartopt($cartid))) 
      { 
       echo $CartOpts['ctopname']; 
      } 
     } 
    } 
} 
+0

好吧,我已經嘗試過上述之一,而進入無限loop.Inorder避免我增加了一個計數和我以前的代碼 – user501307 2010-12-22 19:49:31