Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] sumar el total de todo los items

Estas en el tema de sumar el total de todo los items en el foro de PHP en Foros del Web. hola amigos, espero puedan ayudarme, en el siguiente código tengo el resultado total de la sumas de: cantidad de ventas, precio de compra, precio de ...
  #1 (permalink)  
Antiguo 26/03/2021, 03:13
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
sumar el total de todo los items

hola amigos, espero puedan ayudarme, en el siguiente código tengo el resultado total de la sumas de:
cantidad de ventas, precio de compra, precio de venta y ganancia

pero no logro sumar el total de las cantidades de cada items.. probé con el código siguiente
pero el resultado es individual es decir me muestra de cada producto


mi prueba... solo obtengo el total de cada producto y no el total de todo.
Código PHP:
Ver original
  1. <?php
  2.             $ganancias  = $total_s_price - $total_buy_price ;
  3.             echo number_format($ganancias,2)."<br>";
  4.             ?>

el total de todo seria ejemplo:
Cantidad total: 4
Precio compra total: 6.00
Precio venta total: 7.50
ganancia total: 1.50

sale_report.php
Código PHP:
Ver original
  1. <?php
  2.             $year = date('Y');
  3.             $servername = "localhost";
  4.             $username = "username";
  5.             $password = "password";
  6.             $conn = new mysqli($servername, $username, $password);
  7.             if ($conn->connect_error) {  die("Connection failed: " . $conn->connect_error); } echo "Connected successfully";
  8.             if(isset($_POST['submit'])){
  9.             // me podrian recomendar alguna idea como validar?
  10.             }
  11.             $startdate = $_POST['startdate'];
  12.             $enddate = $_POST['enddate'];
  13.  
  14.             $sql  = "SELECT s.sFecha,p.nameProducts,s.vClient,p.sale_price,p.buy_price,
  15.            COUNT(s.product_id) AS total_records,
  16.            SUM(s.gty_s) AS total_qty,
  17.            SUM(p.sale_price * s.gty_s) AS total_s_price,
  18.            SUM(p.buy_price * s.gty_s) AS total_buy_price
  19.            FROM sales s
  20.            LEFT JOIN products p ON s.product_id = p.product_id
  21.            WHERE s.sFecha BETWEEN '{$startdate}' AND '{$enddate}'
  22.            GROUP BY DATE(s.sFecha),p.nameProducts
  23.            ORDER BY DATE(s.sFecha) DESC";
  24.  
  25.             $result = $conn->query($sql);
  26.             if ($result->num_rows > 0) {
  27.             while($row = $result->fetch_assoc()) {
  28.             ?>
  29.             Mostrar por dias:<br>
  30.             Cantidad de Ventas:  <?php  echo $total_qty = $row["total_qty"]; ?> <br> ejemplo: 1, 1, 2 etc..
  31.             Precio Venta Total:  <?php  echo $total_s_price = $row["total_s_price"]; ?> <br>  ejemplo: 1.50, 2.50, 3.50 etc..
  32.             Precio Compra Total:  <?php  echo $total_buy_price = $row["total_buy_price"]; ?> <br> ejemplo: 1.00, 2.00, 3.00 etc..
  33.  
  34.             EJEMPLO:
  35.             ||  Producto  ||  Ventas  ||  Precio Compra ||  Precio Venta  || Ganancia  |||
  36.             ||  Fresa     ||    1     ||  1.00          ||  1.50          ||  0.50     |||
  37.             ||  Manzana   ||    1     ||  2.00          ||  2.50          ||  0.50     |||
  38.             ||  Naranja   ||    2     ||  3.00          ||  3.50          ||  0.50     |||
  39.             TOTAL               4         6.00              7.50              1.50
  40.  
  41.            <?php
  42.             $ganancias  = $total_s_price - $total_buy_price ;
  43.             echo number_format($ganancias,2)."<br>";
  44.             ?>
  45.             <?php
  46.             }
  47.             } else {
  48.             echo "0 result";
  49.             }
  50.             $conn->close();
  51. ?>


Aqui selecciono la fecha: inicio y final
Formulario
Código HTML:
Ver original
  1. <form method="post" action="sale_report.php">
  2.                 <input type="date" name="startdate" id="startdate" data-date data-date-format="yyyy-mm-dd" value="<?php echo date('Y-m-').'01'; ?>" >
  3.                 <input type="date" name="enddate" id="enddate" data-date data-date-format="yyyy-mm-dd" value="<?php echo date('Y-m-d'); ?>" >
  4.               </div>
  5.           </div>
  6.           <div class="form-group">
  7.                <button type="submit" name="submit" class="btn btn-primary">Generar Reporte</button>
  8.           </div>
  9. </form>




Código HTML:
Ver original
  1. CREATE TABLE `sales` (
  2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  3.   `product_id` int(11) unsigned NOT NULL,
  4.   `gty_s` int(11) NOT NULL,
  5.   `total_s` decimal(25,2) DEFAULT 0.00,
  6.   `moneymaking` decimal(25,2) DEFAULT 0.00,
  7.   `vClient` varchar(255) DEFAULT NULL,
  8.   `sFecha` datetime NOT NULL,
  9.  
  10.   CREATE TABLE `products` (
  11.   `product_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  12.   `nameProducts` varchar(255) NOT NULL,
  13.   `sale_price` decimal(25,2) DEFAULT 0.00,    
  14.   `buy_price` decimal(25,2) DEFAULT 0.00,
  15.   `barCode` varchar(60) NOT NULL,
  16.   `pFecha` datetime NOT NULL,
  #2 (permalink)  
Antiguo 26/03/2021, 08:55
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: sumar el total de todo los items

como ya obtienes el total de cada ITEM en tu bucle, ese total del ITEM , recogelo en una variabla y ve sumandolo para obtener el TOTAL del TODO
Código PHP:
Ver original
  1. <?php
  2. $ganancias  = $total_s_price - $total_buy_price ;
  3. $total_del_todo_ganancias = $total_del_todo_ganancias +$ganancias  ;
recuerda instanciar la variable $total_del_todo_ganancias=0, antes del bucle
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9

Última edición por tuadmin; 26/03/2021 a las 08:57 Razón: el codigo coloreado
  #3 (permalink)  
Antiguo 26/03/2021, 14:29
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: sumar el total de todo los items

Cita:
Iniciado por tuadmin Ver Mensaje
como ya obtienes el total de cada ITEM en tu bucle, ese total del ITEM , recogelo en una variabla y ve sumandolo para obtener el TOTAL del TODO
Código PHP:
Ver original
  1. <?php
  2. $ganancias  = $total_s_price - $total_buy_price ;
  3. $total_del_todo_ganancias = $total_del_todo_ganancias +$ganancias  ;
recuerda instanciar la variable $total_del_todo_ganancias=0, antes del bucle

Hola tuadmin, gracias por responder.
te comento que hice tu reconvención y sigue igual aquí te dejo como quedo.

sale_report.php
Código PHP:
Ver original
  1. <?php
  2.             $year = date('Y');
  3.             $servername = "localhost";
  4.             $username = "username";
  5.             $password = "password";
  6.             $conn = new mysqli($servername, $username, $password);
  7.             if ($conn->connect_error) {  die("Connection failed: " . $conn->connect_error); } echo "Connected successfully";
  8.             if(isset($_POST['submit'])){
  9.             // me podrian recomendar alguna idea como validar?
  10.             }
  11.             $startdate = $_POST['startdate'];
  12.             $enddate = $_POST['enddate'];
  13.  
  14.             $sql  = "SELECT s.sFecha,p.nameProducts,s.vClient,p.sale_price,p.buy_price,
  15.            COUNT(s.product_id) AS total_records,
  16.            SUM(s.gty_s) AS total_qty,
  17.            SUM(p.sale_price * s.gty_s) AS total_s_price,
  18.            SUM(p.buy_price * s.gty_s) AS total_buy_price
  19.            FROM sales s
  20.            LEFT JOIN products p ON s.product_id = p.product_id
  21.            WHERE s.sFecha BETWEEN '{$startdate}' AND '{$enddate}'
  22.            GROUP BY DATE(s.sFecha),p.nameProducts
  23.            ORDER BY DATE(s.sFecha) DESC";
  24.  
  25.             $result = $conn->query($sql);
  26.             if ($result->num_rows > 0) {
  27.            
  28.             $total_del_todo_ganancias=0;
  29.  
  30.             while($row = $result->fetch_assoc()) {
  31.  
  32.             ?>
  33.             <?php
  34.             $ganancias  = $total_s_price - $total_buy_price ;
  35.             echo number_format($ganancias,2)."<br>";
  36.            
  37.             $ganancias  = $total_s_price - $total_buy_price ;
  38.             $total_del_todo_ganancias = $total_del_todo_ganancias +$ganancias  ;
  39.             ?>
  40.             <?php
  41.             }
  42.             } else {
  43.             echo "0 result";
  44.             }
  45.             $conn->close();
  46. ?>
  #4 (permalink)  
Antiguo 26/03/2021, 14:33
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: sumar el total de todo los items

también agregue el resto y nada el resultado es el mismo no suma el total del todo.
Código PHP:
Ver original
  1. while($row = $result->fetch_assoc()) {
  2.  
  3.             $total_del_todo_ganancias=0;
  4.             $total_s_price=0;
  5.             $total_buy_price=0;
  #5 (permalink)  
Antiguo 26/03/2021, 17:12
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: sumar el total de todo los items

intento numero 2 y nada me de vuelve el mismo total de cada ítem, y no suma el total de todo los ítems.
obteniendo el total de todo los items como ejemplo, ya se puede seguir con los de mas... pero nada aun.

sale_report.php
Código PHP:
Ver original
  1. <?php
  2.             $year = date('Y');
  3.             $servername = "localhost";
  4.             $username = "username";
  5.             $password = "password";
  6.             $conn = new mysqli($servername, $username, $password);
  7.             if ($conn->connect_error) {  die("Connection failed: " . $conn->connect_error); } echo "Connected successfully";
  8.             if(isset($_POST['submit'])){
  9.             // me podrian recomendar alguna idea como validar?
  10.             }
  11.             $startdate = $_POST['startdate'];
  12.             $enddate = $_POST['enddate'];
  13.  
  14.             $sql  = "SELECT s.sFecha,p.nameProducts,s.vClient,p.sale_price,p.buy_price,
  15.            COUNT(s.product_id) AS total_records,
  16.            SUM(s.gty_s) AS total_qty,
  17.            SUM(p.sale_price * s.gty_s) AS total_s_price,
  18.            SUM(p.buy_price * s.gty_s) AS total_buy_price
  19.            FROM sales s
  20.            LEFT JOIN products p ON s.product_id = p.product_id
  21.            WHERE s.sFecha BETWEEN '{$startdate}' AND '{$enddate}'
  22.            GROUP BY DATE(s.sFecha),p.nameProducts
  23.            ORDER BY DATE(s.sFecha) DESC";
  24.  
  25.             $result = $conn->query($sql);
  26.             if ($result->num_rows > 0) {
  27.             // AQUI    
  28.             $total_del_todo_ganancias = 0;
  29.             $sum = 0;
  30.             $sub = 0;
  31.             while($row = $result->fetch_assoc()) {
  32.             /* O AQUI IGUAL NO SUMA EL TOTAL DE TODO
  33.             $total_del_todo_ganancias = 0;
  34.             $sum = 0;
  35.             $sub = 0;
  36.             */
  37.             ?>
  38.  
  39.             <?php
  40.             // INTENTO 2
  41.             $sum += $row['total_saleing_price'];
  42.             $sub += $row['total_buying_price'];
  43.             $ganancias = $sum - $sub;
  44.             echo "-> $ganancias  <-"; // EL MISMO TOTAL DE CADA ITEM'S y NO el total de TODO
  45.             ?>
  46.  
  47.             <?php
  48.             $ganancias  = $total_s_price - $total_buy_price ;
  49.             echo number_format($ganancias,2)."<br>";
  50.             // INTENTO 1
  51.             $ganancias  = $total_s_price - $total_buy_price ;
  52.             $total_del_todo_ganancias = $total_del_todo_ganancias +$ganancias  ;
  53.             ?>
  54.             <?php
  55.             }
  56.             } else {
  57.             echo "0 result";
  58.             }
  59.             $conn->close();
  60. ?>
  #6 (permalink)  
Antiguo 26/03/2021, 17:39
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: sumar el total de todo los items

por que llamas variables q no existen??

$sum += $row['total_saleing_price'];
$sub += $row['total_buying_price'];

si tu $row tiene total_buy_price y total_s_price
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #7 (permalink)  
Antiguo 26/03/2021, 20:11
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: sumar el total de todo los items

Cita:
Iniciado por tuadmin Ver Mensaje
por que llamas variables q no existen??

$sum += $row['total_saleing_price'];
$sub += $row['total_buying_price'];

si tu $row tiene total_buy_price y total_s_price
no existe esa variable es solo una palabra:

de este modo tampoco suma solo me da el total de cada item mas no el total de todo
Código PHP:
Ver original
  1. $result = $conn->query($sql);
  2.             if ($result->num_rows > 0) {
  3.             // AQUI    
  4.             $total_del_todo_ganancias = 0;
  5.             $total_saleing_price = 0;
  6.             $total_buying_price = 0;
  7.             while($row = $result->fetch_assoc()) {
  8.             /* O AQUI IGUAL NO SUMA EL TOTAL DE TODO
  9.             $total_del_todo_ganancias = 0;
  10.             $total_saleing_price = 0;
  11.             $total_buying_price = 0;
  12.             */
  13.             ?>
  14.  
  15.             <?php
  16.             // INTENTO 2
  17.             $total_saleing_price += $row['total_saleing_price'];
  18.             $total_buying_price += $row['total_buying_price'];
  19.             $ganancias = $total_saleing_price - $total_buying_price;
  20.             echo "-> $ganancias  <-"; // EL MISMO TOTAL DE CADA ITEM'S y NO el total de TODO
  21.             ?>
  #8 (permalink)  
Antiguo 02/04/2021, 12:39
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: sumar el total de todo los items

al parecer no se puede sumar el total de todo, pero si he visto que otros lo han logrado. tal vez usen frameworks o son de la nasa

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:57.