【发布时间】:2017-05-02 04:11:57
【问题描述】:
我是这个 php 主题的新手,问题是我不知道如何添加会话中而不是数据库中的数据。
我已经尝试了几种组合来创建数组路径并添加总数据,但我无法(不能乘以单价),它们总是单独呈现,而不是总和(总价的总和) .
<div class="fresh-table">
<?php
/*
* This is the console to get all the products in the database.
*/
$products = $con->query("select * from product");
if(isset($_SESSION["cart"]) && !empty($_SESSION["cart"])):
?>
<table id="fresh-table" class="table table-responsive">
<thead>
<th data-field="cant" data-sortable="true">Quantity</th>
<th data-field="prod" data-sortable="true">Product</th>
<th data-field="total" data-sortable="true">Total</th>
<th data-field="actions"></th>
</thead>
<?php
/*
* From here we take the route of the products obtained and reflect them in a table.
*/
foreach($_SESSION["cart"] as $c):
$products = $con->query("select * from product where id=$c[product_id]");
$r = $products->fetch_object();
?>
<tr>
<td><?php echo $c["q"];?></td>
<td><?php echo $r->name;?></td>
<td>$ <?php echo $c["q"]*$r->price; ?></td>
<td style="width:auto;">
<?php
$found = false;
foreach ($_SESSION["cart"] as $c) {
if($c["product_id"]==$r->id){
$found = true;
break;
}
}
?>
<a rel="tooltip" title="Remove" class="table-action remove" href="cart/delfromfloat.php?id=<?php echo $c["product_id"];?> ">
<i class="fa fa-trash-o fa-lg"></i>
</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
</br>
<span>
<h3>
<bold>Total: $
<?php
foreach($_SESSION["cart"] as $pr):
$products = $con->query("select * from product where id=$pr[product_id]");
$r = $products->fetch_object();
$subtotal = $pr["q"]*$r->price;
$sumArr[] = $subtotal;
echo array_sum($sumArr);
?>
<?php endforeach; ?>
</bold>
</h3>
</span>
</br></br>
<a href="carrito.php" class="btn btn-danger"><i title="Go to cart" class="fa fa-cart"></i> Go to cart</a>
<?php else:?>
<p class="alert alert-warning">The cart is empty.</p>
<?php endif;?>
</div>
【问题讨论】:
-
大概这是数量乘以价格
$c["q"]*$r->price,因此您将其存储在echo $subtotal = $c["q"]*$r->price; $sumArr[] = $subtotal;之类的数组中,然后您想要总计,您只需echo array_sum($sumArr);...至少这是我从你的问题中理解。除了检查购物车是否存在并遍历项目之外,我不知道会话部分的来源。 -
您好@Jhon117,在使用
$_SESSION之前,请确保您已在顶部启动会话,即session_start() -
测试了,但是屏幕上的结果: Total: $ 15000 30000 其中15000是第一个产品,第二个产品没有显示,显示的是两个产品的总和。