【问题标题】:PHP sum echo result on the fly (difficult)PHP 即时求和回显结果(困难)
【发布时间】:2015-09-03 05:26:18
【问题描述】:

这对专业人士来说很难,但很容易。

我在 mysql 中有以下字段:产品名称、mycost、sellprice 和库存。因为我需要知道每种产品在我的商店中有多少投资,所以我创建了以下即时计算并且运行良好:

 <td><?php echo $product['name'] ?></td>
    <td><?php echo $product['stock'] ?></td>
    <td><?php echo $product['mycost'] ?></td>
    <td><?php echo $product['sellprice'] ?></td>

在这里,我们根据 mycost(我为产品支付的价格)* 库存即时计算我在商店中的投资(金钱)是多少

<td><?php echo number_format($product['mycost'] * $product['stock'],0,',','.'); ?></td>

效果很好,如果我的产品成本是 10,库存是 100,那么我得到的结果是 1000 的投资

现在因为产品的结果 (1000) 正在运行(未存储在 mysql 中),所以我有以下问题:

搜索结果显示例如 3 种不同的产品,其中 3 种不同的即时投资结果未存储在 mysql 中。如何汇总此结果并显示在页面顶部?

如果将结果存储在 mysql 中,这很容易,但因为它是这样的:

<td><?php echo number_format($product['mycost'] * $product['stock'],0,',','.'); ?></td>

我认为没有办法这样做,这就是为什么我在这里询问专业人士

有什么想法吗?

编辑: 这是完整的代码

<?php
$cualcategoria = mysqli_real_escape_string($database,$_GET['categoria']);
$verproductos = mysqli_query($database, "SELECT * FROM `productos`");
while($mostrar = mysqli_fetch_assoc($verproductos)) {
?>
<table class="table1000">
  <tr>
    <td style="width:120px;"><div id="rightImage"><img style="border:2px solid #cccccc;" alt="image" src="fotos/<?php echo $mostrar['codigo'] ?>.jpg" width="90" height="90"></div></td>
    <td valign="top" style="width:900px;"><table class="table900">
      <tr>
        <td class="header150">Producto</td>
        <td class="header150">Marca</td>
        <td class="header150">Modelo</td>
        <td class="header150">Cantidad</td>
        <td class="header150">Capital</td>
        <td class="header150">Código</td>
        </tr>
      <tr>
        <td class="header150small"><?php echo $mostrar['producto'] ?></td>
        <td class="header150small"><?php echo $mostrar['marca'] ?></td>
        <td class="header150small"><?php echo $mostrar['modelo'] ?></td>
        <td class="header150small"><?php echo number_format($mostrar['stock'],0,',','.'); ?></td>
        <td class="header150small">$ <?php echo number_format($mostrar['costo'] * $mostrar['stock'],0,',','.'); ?></td>
        <td class="header150small"><a class="header150small" href="generar.php?codigo=<?php echo $mostrar['codigo'] ?>"><?php echo $mostrar['codigo'] ?></a></td>
        </tr>
      <tr>
        <td class="header150">Precio Costo</td>
        <td class="header150">Precio Neto</td>
        <td class="header150">IVA Incluido</td>
        <td class="header150">Ganancia</td>
        <td class="header150">Ganancia Total</td>
        <td class="header150">Proveedor</td>
      </tr>
      <tr>
        <td class="header150small">$ <?php echo number_format($mostrar['costo'],0,',','.'); ?></td>
        <td class="header150small">$ <?php echo number_format($mostrar['venta'],0,',','.'); ?></td>
        <td class="header150small">$ <?php echo number_format($mostrar['coniva'],0,',','.'); ?></td>
        <td class="header150small">$ <?php echo number_format($mostrar['venta'] - $mostrar['costo'],0,',','.'); ?>
        </td>
        <td class="header150small">$ <?php echo number_format(($mostrar['venta'] - $mostrar['costo']) *  $mostrar['stock'],0,',','.'); ?></td>
        <td class="header150small"><?php echo $mostrar['proveedor'] ?></td>
      </tr>
    </table>
     </td>
  </tr>
</table>
<?php
}
?>

【问题讨论】:

  • 编辑了问题,完整的代码。没有tengo foreach,probe con los del de la respuesta de mas abajo pero no sirvio de nada。 Nesecito sumar los capitales invertidos que van dinamicos en el aire estos
  • 需要对(大写)求和 但在飞行中
  • 朋友的意思是php初学者无法解决这个问题,否则我不会在这里问
  • Lista mi respuesta。 Primero pruébela tal como la puse para que la vea en el navegador, luego le elimina mi array para regresar a la base de datos。 Cualquier duda me avisa。 Por cierto, se siente bien usar español aquí en StackOverflow.

标签: php html mysql forms search


【解决方案1】:

一种方法是使用变量在旅途中对其进行总结(这里我使用 totalInvestment 作为变量)

$totalInvestment = 0;

foreach($products as $product):
    $totalInventsment += product['mycost'] * $product['stock']; ?>

     ...
    <td><?php echo $product['name'] ?></td>
    <td><?php echo $product['stock'] ?></td>
    <td><?php echo $product['mycost'] ?></td>
    <td><?php echo $product['sellprice'] ?></td>
    ...

<?php endforeach;

然后你可以像这样回显它

<?php echo number_format($totalInventsment,',','.'); ?>

编辑 如果你想要它在顶部,你可以在你的文件顶部添加它(这会使网站加载慢一点 n(x)

$totalInvestment = 0;
foreach($products as $product){
        $totalInventsment += product['mycost'] * $product['stock'];
}

echo  number_format($totalInventsment,',','.');

【讨论】:

  • 这将在页面底部显示总数,问题位于页面顶部。
  • 是否需要在 while($product = mysqli_fetch_assoc($showproduct)) { ? 之后添加这个
  • 你只需要$totalInvestment = 0的部分;在while循环上。以及它下面的 $totalInvestment +=
  • 这是一个小提琴jsfiddle.net/nte6xqdv/10,其中包含我正在使用的真实代码并插入了您的代码。 Dreamweaver 在线显示错误
  • 错误似乎在这里 $totalInventsment += mostrar['costo'] * $mostrar['stock'];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多