Comunidad de diseño web y desarrollo en internet online

sumar columna mysql con php

Citar            
MensajeEscrito el 09 Oct 2019 05:41 pm
Hola buenas tardes.

Estoy revisando el foro y no doy con la solución, siempre me da error mysql.

Tengo una db con nombre serviciosdiarios y bastantes columnas, entre ellas una que es el importe (totalefectivo) y otra fecha_ingreso.

Quisiera que me sumara los importes de cierta fecha_ingreso, en esa fecha puede haber 3, 4, 8 importes, no son siempre ni el mismo numero de ingresos ni la misma cantidad.

No he podido individualizar los registros para sumarlos, pues no son siempre el mismo numero de registros y con GROUP BY tampoco soy capaz.

Os pongo el código que utilizo por si me podeis decir donde tengo el error.

Código PHP :

         <?php                 
            include ("ctrl/configuracion.php");

            if (! $link = mysql_connect($server, $db_user, $db_pass)) {
               echo "No pudo conectare con mysql"; 
            exit; 
            }
         
            if (! mysql_select_db ($database, $link)) {
                echo "No se PUDO selecionar la base de Datos" ;
             exit;
            }

            $sql = mysql_query("SELECT SUM(totalefectivo) FROM $serviciosdiarios WHERE fecha_ingreso = $fecha_ingreso GROUP BY($fecha_ingreso)");
            $resultado = mysql_query ( $sql , $link );
            
            if (! $resultado ) {
                  echo "Error de MySQL: "; mysql_error () ;         
            exit;
            }               
            
            while($row=mysql_fetch_assoc($resultado)){
                $total+=$row['totalefectivo'];
                echo '$total';
            }
            mysql_free_result ( $resultado );       
         ?>


Muchas gracias de antemano.

Un saludo.

Por jeyn

33 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 10 Oct 2019 11:55 am
Imprime el query a ver que te esta dando, agrega

echo "SELECT SUM(totalefectivo) FROM $serviciosdiarios WHERE fecha_ingreso = $fecha_ingreso GROUP BY($fecha_ingreso)";

Probablemente la fecha no este en un formato que MySQL entienda y la debas convertir antes de ejecutar el query

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 10 Oct 2019 06:12 pm
Gracias por la atención.

Si que podría ser el formato de las fechas. por que lo he corregido algo y he quitado el error Mysql.

Ahora lo tengo en el wile, la variable $total me da 0, Vamos que no realiza la suma o se queda con valor 0

Pongo el código para intentar corregirlo.

Código PHP :

         <?php                 
            include ("ctrl/configuracion.php");
            
            if (! $link = mysql_connect($server, $db_user, $db_pass)) {
               echo "No pudo conectare con mysql"; 
            exit; 
            }
         
            if (! mysql_select_db ($database, $link)) {
                echo "No se PUDO selecionar la base de Datos" ;
             exit;
            }

            $fecha_banco = ($_GET['fecha_ingreso']);
      
            $obj_fecha1 = DateTime::createFromFormat('d/m/Y', $fecha_banco);
            $fecha_banco = date_format($obj_fecha1, "Y-m-d");

            $sql = "SELECT fecha_ingreso, SUM(totalefectivo) FROM $serviciosdiarios WHERE fecha_ingreso = '$fecha_banco' GROUP BY(fecha_ingreso)";
            $resultado = mysql_query ( $sql , $link );
            
            if (! $resultado ) {
                  echo "Error de MySQL: "; mysql_error () ;         
            exit;
            }               
            
            while($row = mysql_fetch_assoc($resultado)){
                $total += $row['totalefectivo'];
                echo $total;
            }
            mysql_free_result ( $resultado );       
         ?>



Gracias de nuevo

Por jeyn

33 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 10 Oct 2019 10:00 pm
Imrpime el query como te dije antes y ejecutalo directamente en la base de datos (lo copias y lo pegas en el phpmyadmin por ejemplo, o el gestor que uses), si el resultado es correcto entonces corregimos el PHP, pero primero hay que ver que el SQL sea correcto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 12 Oct 2019 04:06 pm
Hola, Gracias de nuevo.

He modificado algo el código y lo he ordenado, no se si bien, pero en el orden que yo lo entiendo.

He copiado el código como me has dicho y he cambiado las variables por los datos originales

$serviciosdiarios // Esta la he imprimido en el código con un echo y me da correcto
$fecha_banco // Esta la he imprimido igual y también me da correcto., el mismo de la db
$sql // Es lo que he copiado y lo he pegado en phpmyadmin, quitando la variable y las dobles comillas, y me da correcto la suma

Código PHP :

         <?php                 
            $fecha_banco = ($_GET['fecha_ingreso']);
      
            $obj_fecha1 = DateTime::createFromFormat('d/m/Y', $fecha_banco);
            $fecha_banco = date_format($obj_fecha1, "Y-m-d");

            
            if (! $link = mysql_connect($server, $db_user, $db_pass)) {
               echo "No pudo conectare con mysql"; 
            exit; 
            }
         
            if (! mysql_select_db ($database, $link)) {
                echo "No se PUDO selecionar la base de Datos" ;
             exit;
            }

            $sql = "SELECT SUM(totalefectivo) FROM $serviciosdiarios WHERE fecha_ingreso = '$fecha_banco'";
            $resultado = mysql_query ( $sql , $link );
            
            if (! $resultado ) {
                  echo "Error de MySQL: "; mysql_error () ;         
            exit;
            }               
            
            while($row = mysql_fetch_assoc($resultado)){
                $total += $row['totalefectivo'];
                echo $total;
            }
            mysql_free_result ( $sql );
         ?>



La variable $resultado la he imprimido y me da como resultado "Resource id #9"
Y la variable $total me da como resultado "0"

No entiendo el error.

Gracias.

Por jeyn

33 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 13 Oct 2019 07:21 am
Tema resuelto muchas gracias, me faltaba asignar un nombre a (SUM) totalefectivo

(SUM) totalefectivo AS totalefectivo, asi si funciona.

Por jeyn

33 de clabLevel



 

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.