2013-03-17 96 views
0

将物品添加到购物车时,会创建购物车,然后显示包含物品添加信息的表格。只要添加了一个新项目,它就会在原始项目下创建一个新表格,并在它们应该作为将列标题共享为一个表格的新行添加时重新创建列标题。我的代码到目前为止:购物车问题,表中错误显示的物品

function minicart() 
{ 
    $items = 0; 
    $tbl = array(); 
    foreach($_SESSION as $name => $value) 
    { 
     if ($value > 0) { 
      if (substr($name, 0, 5)=='cart_') 
      { 
       $id = substr($name, 5, (strlen($name) -5)); 
       $get = mysql_query('SELECT id, name, price FROM products WHERE id='.mysql_real_escape_string((int)$id)); 
       $tbl[] = '<table border="1"><thead><tr>' 
        . '<th>Item</th>' 
        . '<th>Quantity</th>' 
        . '<th>Unit Price</th>' 
        . '<th>SubTotal</th>' 
        . '<th>Action</th>' 
        . '</tr></thead><tbody>' 
       ; 
       while ($get_row = mysql_fetch_assoc($get)) { 
        $items++; 
        $sub = $get_row['price'] * $value; 
        $tbl[] = '<tr>' 
         . '<td>' . $get_row['name'] . '</td>' 
         . '<td>' . $value . '</td>' 
         . '<td>&pound;' . number_format($get_row['price'], 2) . '</td>' 
         . '<td>$pound;' . number_format($sub, 2) . '</td>' 
         . '<td>' 
         . ' <a href="minicart.php?remove=' . $id . '">[-]</a> ' 
         . ' <a href="minicart.php?add=' . $id . '">[+]</a> ' 
         . ' <a href="minicart.php?delete=' . $id . '">[Delete]</a>' 
         . '</td>' 
         . '</tr>' 
        ; 
       } 
       $tbl[] = '</tbody>'; 
      } 
      $total += $sub; 
     } 
    } 
    if ($items==0) 
    { 
     echo "Your cart is empty"; 
    } 
    else 
    { 
     $tbl[] = '<tfoot><tr>' 
       . '<td colspan="3" style="text-align:right; font-weight:bold">Total:</td>' 
       . '<td>&pound;' . number_format($total, 2) . '</td></tr></tfoot></table>'; 
     echo implode("\n", $tbl); 

    } 
} 

有什么建议吗?谢谢

回答

0

html标记不匹配,如果您只想创建一行,则不需要</table>。 tfoot是一样的,如果再添​​加一次,表格标题会重复。

只添加<tr>...</tr>零件到$ tbl,这应该工作。