Это сложно, но просто для профессионалов.
У меня есть в 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>
Он отлично работает, если mycost для продукта составляет 10, а акции – 100, тогда результат, который я получаю на лету, составляет 1000 инвестиций
Теперь, поскольку результат (1000) для продукта находится на ходу (не сохраняется в mysql), у меня есть следующая проблема:
Результат поиска показывает, например, 3 разных продукта с тремя различными результатами инвестиций на лету, которые не хранятся в mysql. Как я могу суммировать этот результат и показывать в верхней части страницы?
Если это были результаты, хранящиеся в mysql, это было легко, но так как это было так:
<td><?php echo number_format($product['mycost'] * $product['stock'],0,',','.'); ?></td>
Я не вижу никакого способа сделать это и почему я здесь, чтобы спросить профессионалов
Есть идеи?
EDIT: Вот полный код
<?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 } ?>
Muy bien, maradoiano, tuve que realizar algunas acrobacias для correr tu código, la cosa está así:
$total
. $tabla
. Ésta será una variable magne porque concatena el <table>
, los <tr>
y los <td>
, además de los datos que éstos contienen. $total
y después $tabla
. El siguiente código hace lo передний, нота:
foreach
. Maradoiano debe comentarlo y volver a usar su while
. Este es el código:
<?php //$cualcategoria = mysqli_real_escape_string($database,$_GET['categoria']); //$verproductos = mysqli_query($database, "SELECT * FROM `productos`"); $verproductos = Array( Array( "codigo" => "0401", "producto" => "tenis", "marca" => "Nike", "modelo" => "Air", "stock" => 50, "costo" => 700, "venta" => 800, "coniva" => 125, "proveedor" => "Importadora de Zapatos" ), Array( "codigo" => "0992", "producto" => "camisa", "marca" => "Eiffel", "modelo" => "", "stock" => 14, "costo" => 250, "venta" => 300, "coniva" => 60, "proveedor" => "Importadora de Camisas" ), Array( "codigo" => "5800", "producto" => "anteojos", "marca" => "Bay", "modelo" => "Solar", "stock" => 40, "costo" => 400, "venta" => 550, "coniva" => 95, "proveedor" => "Importadora de Anteojos" ) ); $tabla = '<table class="table1000">'; $total = 0; //while ( $mostrar = mysqli_fetch_assoc( $verproductos ) ) foreach ( $verproductos as $mostrar ) { $tabla .= '<tr>' . ' <td style="width:120px;">' . ' <div id="rightImage"><img style="border:2px solid #cccccc;" alt="image"' . ' src="fotos/' . $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">' . $mostrar['producto'] . '</td>' . ' <td class="header150small">' . $mostrar['marca'] . '</td>' . ' <td class="header150small">' . $mostrar['modelo'] . '</td>' . ' <td class="header150small">' . number_format($mostrar['stock'],0,',','.') . '</td>' . ' <td class="header150small">$' . number_format($mostrar['costo']*$mostrar['stock'],0,',','.') . '</td>'; $total += $mostrar['costo'] * $mostrar['stock']; $tabla .= ' <td class="header150small"><a class="header150small"' . ' href="generar.php?codigo=' . $mostrar['codigo'] . '">' . $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">$' . number_format($mostrar['costo'],0,',','.') . '</td>' . ' <td class="header150small">$' . number_format($mostrar['venta'],0,',','.') . '</td>' . ' <td class="header150small">$' . number_format($mostrar['coniva'],0,',','.') . '</td>' . ' <td class="header150small">$' . number_format($mostrar['venta'] - $mostrar['costo'],0,',','.') . ' </td>' . ' <td class="header150small">$' . number_format(($mostrar['venta'] - $mostrar['costo']) * $mostrar['stock'],0,',','.') . '</td>' . ' <td class="header150small">' . $mostrar['proveedor'] . '</td>' . ' </tr>' . ' </table>' . ' </td>' . '</tr>' . '<tr><td colspan="2"><hr/></td></tr>'; } echo "Inversión total = " . $total . "<br/>" . $tabla . '</table>'; ?>
Способ будет использовать переменную, чтобы суммировать ее на ходу (здесь я использую 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,',','.');