Foros del Web » Programando para Internet » PHP »

Hacer SUM correctamente

Estas en el tema de Hacer SUM correctamente en el foro de PHP en Foros del Web. Buenas! Llevo más de una semana intentado solucionar el problema que me surgió. Es el siguiente, os comento. Tengo una BBDD llamada nomisferio en la ...

  #1 (permalink)  
Antiguo 20/04/2016, 04:59
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Hacer SUM correctamente

Buenas!

Llevo más de una semana intentado solucionar el problema que me surgió.
Es el siguiente, os comento.

Tengo una BBDD llamada nomisferio en la cual tengo las siguientes columnas:
- ID_Nomisferio
- ID_Categoria
- Tipo_Mes
- Unas columnas de valores fijos
- Unas columnas de valores variables.

La aplicación consiste en que el usuario especifique, mediante unas casillas de selección, tanto su ID_Categoria como el tipo de mes.
Dependiendo de la elección del usuario, será un ID_Nomisferio u otro.
Lo que tiene que pasar es que se sumen los conceptos fijos del ID_Nomisferio resultante de esa elección.
Este es el código que tengo ahora mismo:
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['enviar'])) {
  3. $con = mysqli_connect ("localhost", "sueldos", "sueldos", "sueldos")
  4. or die ("ERROR. No se ha podido conectar  a la BBDD.");
  5. echo "<br/>";
  6. //$categoria = mysqli_real_escape_string($con, $_POST['categoria']);
  7. //$mes = mysqli_real_escape_string($con, $_POST['mes']);
  8. $dias_trabajados = mysqli_real_escape_string($con, $_POST['dias_trabajados']);
  9. $compfestdia = mysqli_real_escape_string($con, $_POST['compfestdia']);
  10. //$hospital = mysqli_real_escape_string($con, $_POST['hospital']);
  11. $trienio = mysqli_real_escape_string($con, $_POST['trienio']);
  12.  
  13.     if (isset($_POST['enviado'])){
  14.             $resultado = ("SELECT sum(sueldo) as sueldo, sum(antiguedad) as antiguedad,
  15.            sum(Dif_Ant) as Dif_Ant,
  16.            sum(Turnicidad) as Turnicidad, sum(C_Puesto) as C_Puesto,
  17.            sum(C_Niv_Retr) as C_Niv_Retr,
  18.             sum(C_Destino) as C_Destino,
  19.             sum(C_Prof_1) as C_Prof_1,
  20.             sum(C_Prof_2) as C_Prof_2,
  21.             sum(C_Prof_3) as C_Prof_3,
  22.             sum(C_Prof_4) as C_Prof_4
  23.             FROM nomisferio");
  24.             echo "Su salario es: ". $resultado * $dias_trabajados;
  25.  
  26. $result = mysqli_query($con, $resultado);
  27.     }
  28.     }
  29. ?>

Me imagino que tengo que especificar un WHERE, pero lo he intentado y no he conseguido hacerlo bien.

Lo que me muestra la aplicación al pulsar el botón para realizar el cálculo es lo siguiente:
Código HTML:
Ver original
  1. Su salario es: 0


Alguna solución??
Gracias.
  #2 (permalink)  
Antiguo 20/04/2016, 05:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Hacer SUM correctamente

En otro foro ya te pregunté algo que NO has respondido: ¿Probaste la consulta en MySQL?
Simplemente tienes que copiar la query y ejecutrarla con el phpMyadmin:
Código SQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2.      SUM(antiguedad) AS antiguedad,
  3.      SUM(Dif_Ant) AS Dif_Ant,
  4.      SUM(Turnicidad) AS Turnicidad,
  5.      SUM(C_Puesto) AS C_Puesto,
  6.      SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.      SUM(C_Destino) AS C_Destino,
  8.      SUM(C_Prof_1) AS C_Prof_1,
  9.      SUM(C_Prof_2) AS C_Prof_2,
  10.      SUM(C_Prof_3) AS C_Prof_3,
  11.      SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio

Si devuelve algo, entonces el error está en la forma en que lo recuperas...
Donde esto:
Código PHP:
Ver original
  1. if (isset($_POST['enviado'])){
  2.             $resultado = ("SELECT sum(sueldo) as sueldo, sum(antiguedad) as antiguedad,
  3.            sum(Dif_Ant) as Dif_Ant,
  4.            sum(Turnicidad) as Turnicidad, sum(C_Puesto) as C_Puesto,
  5.            sum(C_Niv_Retr) as C_Niv_Retr,
  6.            sum(C_Destino) as C_Destino,
  7.            sum(C_Prof_1) as C_Prof_1,
  8.            sum(C_Prof_2) as C_Prof_2,
  9.            sum(C_Prof_3) as C_Prof_3,
  10.            sum(C_Prof_4) as C_Prof_4
  11.            FROM nomisferio");
  12.             echo "Su salario es: ". $resultado * $dias_trabajados;
  13.  
  14. $result = mysqli_query($con, $resultado);
Está simplemente MAL...
$resultado es un string conteniendo la consulta, y tu lo estás multiplicando por algo... Eso no tiene sentido.

Ni siqueira tienes los datos de la consulta en ese punto, ni tampoco los estás recuperando como corresponde.
Te recomiendo revisar un tutorial basico de uso de MYSQLI. Sin ofender, no estás siguiendo ni siquiera los ejemplos del manual de referencia.

Cita:
Dependiendo de la elección del usuario, será un ID_Nomisferio u otro.
¿Qué elecciones? ¿Donde llegan a ese script?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/04/2016, 06:07
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En otro foro ya te pregunté algo que NO has respondido: ¿Probaste la consulta en MySQL?
Simplemente tienes que copiar la query y ejecutrarla con el phpMyadmin:
Código SQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2.      SUM(antiguedad) AS antiguedad,
  3.      SUM(Dif_Ant) AS Dif_Ant,
  4.      SUM(Turnicidad) AS Turnicidad,
  5.      SUM(C_Puesto) AS C_Puesto,
  6.      SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.      SUM(C_Destino) AS C_Destino,
  8.      SUM(C_Prof_1) AS C_Prof_1,
  9.      SUM(C_Prof_2) AS C_Prof_2,
  10.      SUM(C_Prof_3) AS C_Prof_3,
  11.      SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio

Si devuelve algo, entonces el error está en la forma en que lo recuperas...
Donde esto:
Código PHP:
Ver original
  1. if (isset($_POST['enviado'])){
  2.             $resultado = ("SELECT sum(sueldo) as sueldo, sum(antiguedad) as antiguedad,
  3.            sum(Dif_Ant) as Dif_Ant,
  4.            sum(Turnicidad) as Turnicidad, sum(C_Puesto) as C_Puesto,
  5.            sum(C_Niv_Retr) as C_Niv_Retr,
  6.            sum(C_Destino) as C_Destino,
  7.            sum(C_Prof_1) as C_Prof_1,
  8.            sum(C_Prof_2) as C_Prof_2,
  9.            sum(C_Prof_3) as C_Prof_3,
  10.            sum(C_Prof_4) as C_Prof_4
  11.            FROM nomisferio");
  12.             echo "Su salario es: ". $resultado * $dias_trabajados;
  13.  
  14. $result = mysqli_query($con, $resultado);
Está simplemente MAL...
$resultado es un string conteniendo la consulta, y tu lo estás multiplicando por algo... Eso no tiene sentido.

Ni siqueira tienes los datos de la consulta en ese punto, ni tampoco los estás recuperando como corresponde.
Te recomiendo revisar un tutorial basico de uso de MYSQLI. Sin ofender, no estás siguiendo ni siquiera los ejemplos del manual de referencia.


¿Qué elecciones? ¿Donde llegan a ese script?
Ese dato de los días trabajados los tengo recuperados, lo único que no he puesto el código completo en el mensaje. En ese mismo fichero tengo las variables recuperadas más arriba en el mismo fichero, esa información la recupero del formulario que tengo creado por el método POST.
Este es el código completo del fichero que debería de ejecutar dicha suma/multiplicación
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['enviar'])) {
  3. $con = mysqli_connect ("localhost", "sueldos", "sueldos", "sueldos")
  4. or die ("ERROR. No se ha podido conectar  a la BBDD.");
  5. echo "<br/>";
  6. $categoria = mysqli_real_escape_string($con, $_POST['categoria']);
  7. $mes = mysqli_real_escape_string($con, $_POST['mes']);
  8. $dias_trabajados = mysqli_real_escape_string($con, $_POST['dias_trabajados']);
  9. $compfestdia = mysqli_real_escape_string($con, $_POST['compfestdia']);
  10. //$hospital = mysqli_real_escape_string($con, $_POST['hospital']);
  11. $trienio = mysqli_real_escape_string($con, $_POST['trienio']);
  12.  
  13.     if (isset($_POST['enviado'])){
  14.             $resultado = ("SELECT sum(sueldo) as sueldo, sum(antiguedad) as antiguedad,
  15.            sum(Dif_Ant) as Dif_Ant,
  16.            sum(Turnicidad) as Turnicidad, sum(C_Puesto) as C_Puesto,
  17.            sum(C_Niv_Retr) as C_Niv_Retr,
  18.             sum(C_Destino) as C_Destino,
  19.             sum(C_Prof_1) as C_Prof_1,
  20.             sum(C_Prof_2) as C_Prof_2,
  21.             sum(C_Prof_3) as C_Prof_3,
  22.             sum(C_Prof_4) as C_Prof_4
  23.             FROM nomisferio");
  24.             echo "Su salario es: ". $resultado * $dias_trabajados;
  25.  
  26. $result = mysqli_query($con, $resultado);
  27.    
  28.     }
  29.     }
  30. ?>

Y, este es el fichero del formulario del que recupero dicha información.
Código PHP:
Ver original
  1. <?php
  2.     $con = mysqli_connect ("localhost", "sueldos", "sueldos", "sueldos")
  3.             or die ("ERROR. No se ha podido conectar  a la Base de Datos");
  4.             echo "<br/>";
  5.             $query = 'SELECT descripcion FROM categoria';
  6.             $result = $con->query($query);
  7.     ?>
  8.         <fieldset style='height:400px; width:900px;';>
  9.         <legend align='center'><h1>C&aacutelculo de sueldos   </h1></br></legend>
  10.             <form method="post" name="action_sueldos" id="alta" action="action_sueldos.php" autocomplete="off">
  11.                 <input type="hidden" name="enviado" value="1"/>
  12.                 <div id="uno">
  13.                 <label for="categoria">Categoria:</label>
  14.             <select>    
  15.             <?php    
  16.             while ( $row = $result->fetch_array() )    
  17.             {
  18.                 ?>
  19.    
  20.                 <option value=" <?php echo $row['descripcion'] ?> " >
  21.                 <?php echo $row['descripcion']; ?>
  22.                 </option>
  23.        
  24.                 <?php
  25.             }    
  26.             ?>        
  27.             </select>
  28.                            
  29.             <?php
  30.             $query = 'SELECT distinct Tipo_Mes FROM nomisferio';
  31.             $result = $con->query($query);
  32.             ?>
  33.            
  34.             <label for="mes">Tipo de Mes (dias):</label>
  35.             </br>
  36.            
  37.             <select>    
  38.            
  39.             <?php    
  40.             while ( $row = $result->fetch_array() )    
  41.             {
  42.                 ?>
  43.    
  44.                 <option value=" <?php echo $row['Tipo_Mes'] ?> " >
  45.                 <?php echo $row['Tipo_Mes']; ?>
  46.                 </option>
  47.        
  48.                 <?php
  49.             }    
  50.             ?>        
  51.             </select>
  52.  
  53.                         </br>  
  54.                         <label for="dias_trabajados">Días trabajados:</label><input type="number" name="dias_trabajados" id="dias" size="26"/> </br>
  55.                                                
  56.                     </br>  
  57.                     </div>
  58.                     <div id="dos">
  59.         <legend align='center'><h3>Conceptos Variables  </h3></br></legend>
  60.                         <label for="compfestdia">Complemento Festivos Dia:</label><input type="decimal" name="compfestdia" id="compfestdia" size="26"/> </br>
  61.                     </br>
  62.                         <label for="sueldo">Hospital:</label><input type="checkbox" name="hospital" id="hospital" size="26"/> </br>
  63.                     </br>
  64.                     <legend> Seleccione su tipo de jornada: </legend>
  65.                     <label>
  66.                     <input name="radiobutton" type="radio" value="continua" checked/>Continua
  67.                     </label>
  68.                     </br>
  69.                     </br>
  70.                     <label>
  71.                     <input name="radiobutton" type="radio" value="radiobutton" />Turnos
  72.                     </label>
  73.                     </br>
  74.                     </br>
  75.                     <label>
  76.                     <input name="radiobutton" type="radio" value="radiobutton" />Partida
  77.                     </label>
  78.                     </br>
  79.                     </br>
  80.                     <label for="trienio">Cantidad de trienios:</label><input type="number" name="trienio" id="trienio" size="26"/> </br>
  81.                     </div>
  82.                     <div id="tres">
  83.                 <input type="submit" name="enviar" value="Realizar Calculo" style="position:center"/>
Espero que se entienda mejor ahora mi problema
Gracias.
  #4 (permalink)  
Antiguo 20/04/2016, 06:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Hacer SUM correctamente

Hola ivan7,

No es por entrometerme, pero sigues sin responderle a gnzsoloyo:

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En otro foro ya te pregunté algo que NO has respondido: ¿Probaste la consulta en MySQL?
Simplemente tienes que copiar la query y ejecutrarla con el phpMyadmin:
Código SQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2. SUM(antiguedad) AS antiguedad,
  3. SUM(Dif_Ant) AS Dif_Ant,
  4. SUM(Turnicidad) AS Turnicidad,
  5. SUM(C_Puesto) AS C_Puesto,
  6. SUM(C_Niv_Retr) AS C_Niv_Retr,
  7. SUM(C_Destino) AS C_Destino,
  8. SUM(C_Prof_1) AS C_Prof_1,
  9. SUM(C_Prof_2) AS C_Prof_2,
  10. SUM(C_Prof_3) AS C_Prof_3,
  11. SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio
Yo no te sé ayudar, pero gnzsoloyo seguro que puede si le haces caso, claro...
  #5 (permalink)  
Antiguo 20/04/2016, 07:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Hacer SUM correctamente

A ver si se entiende....

Código PHP:
Ver original
  1. $resultado = ("SELECT sum(sueldo) as sueldo, sum(antiguedad) as antiguedad,
  2.            sum(Dif_Ant) as Dif_Ant,
  3.            sum(Turnicidad) as Turnicidad, sum(C_Puesto) as C_Puesto,
  4.            sum(C_Niv_Retr) as C_Niv_Retr,
  5.            sum(C_Destino) as C_Destino,
  6.            sum(C_Prof_1) as C_Prof_1,
  7.            sum(C_Prof_2) as C_Prof_2,
  8.            sum(C_Prof_3) as C_Prof_3,
  9.            sum(C_Prof_4) as C_Prof_4
  10.            FROM nomisferio");
  11.             echo "Su salario es: ". $resultado * $dias_trabajados;
En este bloque haces dos cosas:
1) Cargas en una variable llamada $resultado una cadena de texto que contiene una consulta SQL. Supongo que tienes claro que cargarla en una variable no implica ejecutarla.
2) Multiplicas una cadena de texto por un número, y lo miuestras concatenado a otro mensaje.

Básicamente sería como hacer:
Código PHP:
Ver original
  1. echo "El valor de 2 x 2 es: "."dos"*2;

¿Te parece que eso tiene sentido? No va a devolver un 4, sino:

Código BASH:
Ver original
  1. El valor de 2 x 2 es: 0

Además, por mas que no devolviese eso, la query obtiene más de una columna, y no un valor único, por lo que te sigue faltando todo el código necesario para hacer la suma total y luego calcular el valor final a mostrar.

¿Queda más claro ahora?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 21/04/2016, 00:45
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En otro foro ya te pregunté algo que NO has respondido: ¿Probaste la consulta en MySQL?
Simplemente tienes que copiar la query y ejecutrarla con el phpMyadmin:
Código SQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2.      SUM(antiguedad) AS antiguedad,
  3.      SUM(Dif_Ant) AS Dif_Ant,
  4.      SUM(Turnicidad) AS Turnicidad,
  5.      SUM(C_Puesto) AS C_Puesto,
  6.      SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.      SUM(C_Destino) AS C_Destino,
  8.      SUM(C_Prof_1) AS C_Prof_1,
  9.      SUM(C_Prof_2) AS C_Prof_2,
  10.      SUM(C_Prof_3) AS C_Prof_3,
  11.      SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio
He ejecutado la consulta en MySQL y poniéndola de esta manera el resultado es la suma de las columnas de la tabla que tengo, es decir, suma las columnas indicadas en la consulta de las 24 filas que contiene dicha tabla.
Lo que tengo que conseguir es que me sume estos valores pero de cada fila que contiene la tabla.
En cambio, ejecutando esta consulta:
Código SQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2.      SUM(antiguedad) AS antiguedad,
  3.      SUM(Dif_Ant) AS Dif_Ant,
  4.      SUM(Turnicidad) AS Turnicidad,
  5.      SUM(C_Puesto) AS C_Puesto,
  6.      SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.      SUM(C_Destino) AS C_Destino,
  8.      SUM(C_Prof_1) AS C_Prof_1,
  9.      SUM(C_Prof_2) AS C_Prof_2,
  10.      SUM(C_Prof_3) AS C_Prof_3,
  11.      SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio
  13. WHERE ID_Nomisferio=1
Me muestra las 24 filas de la tabla, sin hacer ninguna operación con los importes.
Como podría realizar la consulta para que me sumara los valores indicados por fila?
  #7 (permalink)  
Antiguo 21/04/2016, 03:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Hacer SUM correctamente

Ya te comenté en el post anterior lo que tenías que hacer para eso: Una vez obtenido el resultado de la query,realizas la suma internamente en PHP... No creo que necesites ayuda para algo así, ¿no?

Por cierto, da la impresión de que no lees todo lo que se te escribe.
¿Corregiste lo que te indico en ese post, referido a tu código.

Se agradece que hagas un feedback de lo que alguien te aconseja.

Posdata:
Cita:
Me muestra las 24 filas de la tabla, sin hacer ninguna operación con los importes.
Eso no devuelve 24 filas. En todo caso devuelve 24 COLUMNAS. No confundir porque a nivel de consultas a la base son cosas diferentes y pueden malinterpretarse tus respuestas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 21/04/2016, 06:01
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Si te digo la verdad no entiendo muy bien a lo que te refieres.

Y respecto a lo que me devuelve dicha consulta en MySQL... La tabla nomisferio no tiene 24 columnas, tiene menos que 24 columnas. Lo que si contiene son 24 filas, 3 por cada categoría, hay 8 categorías, por lo que 8*3=24 filas.

Lo único que tengo que conseguir es que se sumen los valores especificados en la consulta, ya que el mensaje que me muestra es el siguiente:
Código HTML:
Ver original
  1. Su salario es: 0
Ya no me muestra ningún error, pero no se me suman los valores.

No entiendo muy bien que puedo hacer para solucionar este problema.

Y siento mucho no entenderte a la hora de ayudarme, pero hay cosas que aun no sé, ya que este año ha sido la primera vez en encontrarme con el lenguaje PHP junto con MySQL.

Toda ayuda será bienvenida. Si surge alguna duda respecto a mi problema no tengo problema alguno en explicarlo de nuevo, ya que yo no sé que más hacer para realizar bien esta tarea.

Gracias.
  #9 (permalink)  
Antiguo 21/04/2016, 06:26
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Hacer SUM correctamente

Creo y sin ofender que sigues sin leer lo que te han dicho, o por lo menos no has sido capaz de interpretarlo, por favor relee los comentarios de gnzsoloyo más arriba e intenta comprender lo que te indica.

Si después de eso no consigues solucionarlo.

Pega nuevamente el código como lo tienes ahora, ya que no sabemos que modificaciones as aplicado.
__________________
Unset($vida['malRollo']);
  #10 (permalink)  
Antiguo 21/04/2016, 06:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Hacer SUM correctamente

Vamos otra vez, por partes.

Es absolutamente imposible que esta query te devuelva más de un registro, porque no estás usando GROUP BY, único caso en que hay más de un registro:

Código MySQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2.      SUM(antiguedad) AS antiguedad,
  3.      SUM(Dif_Ant) AS Dif_Ant,
  4.      SUM(Turnicidad) AS Turnicidad,
  5.      SUM(C_Puesto) AS C_Puesto,
  6.      SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.      SUM(C_Destino) AS C_Destino,
  8.      SUM(C_Prof_1) AS C_Prof_1,
  9.      SUM(C_Prof_2) AS C_Prof_2,
  10.      SUM(C_Prof_3) AS C_Prof_3,
  11.      SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio
  13. WHERE ID_Nomisferio=1
Como estás usando una funcion agrupada sin agrupamiento, y no estás poniendo en el SELECT ningún otro campo de la tabla, sumará todo en cada columna, y devovlerá un único registro con todos los resultados.
Si estás obteniendo más de un registor, entonces no nos estás posteando información válida, ya que e ejemplo que pones no es exactamente el real.

REspecto a la suma, me parece que NO es muy dificil, una vez obtenido la respuesta de la base, hacer algo como..
Código PHP:
Ver original
  1. $resultado = mysql_query("SELECT SUM(sueldo) AS sueldo,
  2.     SUM(antiguedad) AS antiguedad,
  3.     SUM(Dif_Ant) AS Dif_Ant,
  4.     SUM(Turnicidad) AS Turnicidad,
  5.     SUM(C_Puesto) AS C_Puesto,
  6.     SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.     SUM(C_Destino) AS C_Destino,
  8.     SUM(C_Prof_1) AS C_Prof_1,
  9.     SUM(C_Prof_2) AS C_Prof_2,
  10.     SUM(C_Prof_3) AS C_Prof_3,
  11.     SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio") or die("Error al ejecuta la consulta: ".mysql_error());
  13. $row = mysql_fetch_row($resultado);
  14. $total = $row('sueldo') + $row('antiguedad') + $row('Dif_Ant') + $row('Turnicidad')
  15. + $row('C_Puesto') + $row('C_Niv_Retr') + $row('C_Destino') + $row('C_Prof_1')
  16. + $row('C_Prof_2') + $row('C_Prof_3') + $row('C_Prof_4');
  17. echo "Su salario es: ". $total * $dias_trabajados;

TE juro que da la impresión de que ni siquiera te pusieses a analizar lo que realmente HACE cada una de las sentencias, ni lo que realmente DEVUELVE. Sin pretender ofender...

Postea, POR FAVOR, el código REAL que estás usando. Y digo el REAL, porque por lo que te dije más arriba, es evidente para mí que lo que estás posteando NO ES lo que realmente estás usando. COmo ya te dije, siendo que no usas GROUP BY es IMPOSIBLE que la query te devuelva lo que dices que te devuelve...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 22/04/2016, 00:47
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por gnzsoloyo Ver Mensaje

Código MySQL:
Ver original
  1. SELECT SUM(sueldo) AS sueldo,
  2.      SUM(antiguedad) AS antiguedad,
  3.      SUM(Dif_Ant) AS Dif_Ant,
  4.      SUM(Turnicidad) AS Turnicidad,
  5.      SUM(C_Puesto) AS C_Puesto,
  6.      SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.      SUM(C_Destino) AS C_Destino,
  8.      SUM(C_Prof_1) AS C_Prof_1,
  9.      SUM(C_Prof_2) AS C_Prof_2,
  10.      SUM(C_Prof_3) AS C_Prof_3,
  11.      SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio
  13. WHERE ID_Nomisferio=1



Código PHP:
Ver original
  1. $resultado = mysql_query("SELECT SUM(sueldo) AS sueldo,
  2.     SUM(antiguedad) AS antiguedad,
  3.     SUM(Dif_Ant) AS Dif_Ant,
  4.     SUM(Turnicidad) AS Turnicidad,
  5.     SUM(C_Puesto) AS C_Puesto,
  6.     SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.     SUM(C_Destino) AS C_Destino,
  8.     SUM(C_Prof_1) AS C_Prof_1,
  9.     SUM(C_Prof_2) AS C_Prof_2,
  10.     SUM(C_Prof_3) AS C_Prof_3,
  11.     SUM(C_Prof_4) AS C_Prof_4
  12. FROM nomisferio") or die("Error al ejecuta la consulta: ".mysql_error());
  13. $row = mysql_fetch_row($resultado);
  14. $total = $row('sueldo') + $row('antiguedad') + $row('Dif_Ant') + $row('Turnicidad')
  15. + $row('C_Puesto') + $row('C_Niv_Retr') + $row('C_Destino') + $row('C_Prof_1')
  16. + $row('C_Prof_2') + $row('C_Prof_3') + $row('C_Prof_4');
  17. echo "Su salario es: ". $total * $dias_trabajados;

TE juro que da la impresión de que ni siquiera te pusieses a analizar lo que realmente HACE cada una de las sentencias, ni lo que realmente DEVUELVE. Sin pretender ofender...

Postea, POR FAVOR, el código REAL que estás usando. Y digo el REAL, porque por lo que te dije más arriba, es evidente para mí que lo que estás posteando NO ES lo que realmente estás usando. COmo ya te dije, siendo que no usas GROUP BY es IMPOSIBLE que la query te devuelva lo que dices que te devuelve...
Realmente, este es el código que he estado utilizando, he probado con el WHERE y sin él.

Realizando la consulta en MySQL SIN el WHERE, me suma TODOS los registros de TODAS las filas.
Es decir, me suma todos los importes de los sueldos, todos los importes de la antigüedad...

En cambio, realizando la consulta CON el WHERE, me saca TODOS los registros que contiene mi tabla, es decir, las 24 filas.

Aparte de utilizar esas dos consultas, también he probado con varias consultas, sin obtener resultados positivos. Aquí una de ellas:
Código PHP:
Ver original
  1. if (isset($_POST['enviado'])){
  2.                 if ($_POST['categoria'] == '1')&&($_POST['mes'] == '28'){
  3.             $query = "SELECT SUM(sueldo, antiguedad, Dif_Ant, Turnicidad, C_Puesto, C_Niv_Retr, C_Destino, C_Prof_1, C_Prof_2, C_Prof_3, C_Prof_4) FROM nomisferio WHERE ID_Nomisferio==1";
  4.                 }elseif($_POST['categoria'] == '1')&&($_POST['mes'] == '30'){
  5.             $query = "SELECT SUM(sueldo, antiguedad, Dif_Ant, Turnicidad, C_Puesto, C_Niv_Retr, C_Destino, C_Prof_1, C_Prof_2, C_Prof_3, C_Prof_4) FROM nomisferio WHERE ID_Nomisferio==2";
  6.                 }elseif($_POST['categoria'] == '1')&&($_POST['mes'] == '31'){
  7.             $query = "SELECT SUM(sueldo, antiguedad, Dif_Ant, Turnicidad, C_Puesto, C_Niv_Retr, C_Destino, C_Prof_1, C_Prof_2, C_Prof_3, C_Prof_4) FROM nomisferio WHERE ID_Nomisferio==3";
Lo que pretendo especificar con esta consulta es que si el usuario escoge la categoria 1 y el tipo de mes que sea, la consulta muestre los valores del ID_Nomisferio que corresponda a esa categoría y ese mes. No sé si se entenderá bien.

Con las dos primeras consultas, no obtengo ningún error, pero no me realiza la suma de los importes. Esto es lo que me sale:
Código HTML:
Ver original
  1. Su salario es: 0

No tengo ninguna necesidad de no poner el código real, bastante que estáis intentando ayudarme, como para "engañaros".

Muchas gracias por el interés, de verdad, pero no entiendo bien como tengo que hacerlo, aparte que creo que no tiene que ser muy complicado, pero me he quedado atascado y no consigo avanzar.

Gracias.
  #12 (permalink)  
Antiguo 22/04/2016, 02:15
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Hacer SUM correctamente

Creo que lo que no tienes claro es el concepto de fila, columna y registro. Por que o no te explicas correctamente o no nos entendemos ya que tenemos conceptos diferentes de cada cosa. Por favor echale un vistazo a esto columna

Por qué lo que dices es incoherente
Cita:
Realizando la consulta en MySQL SIN el WHERE, me suma TODOS los registros de TODAS las filas.
Es decir, me suma todos los importes de los sueldos, todos los importes de la antigüedad...

En cambio, realizando la consulta CON el WHERE, me saca TODOS los registros que
__________________
Unset($vida['malRollo']);
  #13 (permalink)  
Antiguo 22/04/2016, 02:25
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por xerifandtomas Ver Mensaje
Creo que lo que no tienes claro es el concepto de fila, columna y registro. Por que o no te explicas correctamente o no nos entendemos ya que tenemos conceptos diferentes de cada cosa. Por favor echale un vistazo a esto [URL="https://es.m.wikipedia.org/wiki/Columna_(base_de_datos)"]columna[/URL]

Por qué lo que dices es incoherente
Si, perdona, me he estado explicando mal todo el rato en lo que se refiere a eso.
Me realizaba la suma de todas las columnas.

Ahora, con la nueva modificación que he hecho, la que me ha sugerido gnzsoloyo me muestra los siguientes errores:
Código HTML:
Ver original
  1. Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\sueldos\action_sueldos.php on line 29
Y:
Código HTML:
Ver original
  1. Error al ejecutar la consulta:
Siento todo este jaleo, pero me gustaría poder terminar esta aplicación y me están surgiendo bastantes problemas.

Gracias.
  #14 (permalink)  
Antiguo 22/04/2016, 02:27
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Hacer SUM correctamente

Y como tienes la línea 29 actualmente?
__________________
Unset($vida['malRollo']);
  #15 (permalink)  
Antiguo 22/04/2016, 02:29
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por xerifandtomas Ver Mensaje
Y como tienes la línea 29 actualmente?
La línea 29 viene a ser la siguiente:
Código PHP:
Ver original
  1. FROM nomisferio") or die("Error al ejecutar la consulta: ". mysqli_error());
No he modificado nada de la consulta que me sugirió el compañero gnzsoloyo

Última edición por ivan7; 22/04/2016 a las 03:02
  #16 (permalink)  
Antiguo 22/04/2016, 03:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Hacer SUM correctamente

La linea de error no indica dónde se originó el error, indica dónde finaliza la instrucción que produce el error.

Es obvio que en esa linea no está el problema, pero si piensas bien lo que dije antes "dónde finaliza la instrucción" descubrirás que se refiere a mysql_query().

Ahora, con algo más de curiosidad podrías usar un traductor en linea para lo siguiente:
Cita:
mysqli_query() expects at least 2 parameters, 1 given
Traducción:
Cita:
mysqli_query() espera al menos 2 parámetros, 1 dado
¿Se entiende la causa del problema?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 22/04/2016, 03:09
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Hacer SUM correctamente

A ver perdona, quizás he sido demasiado literal, lo siento.

Es claro que eso es solo parte de la sentencia, aún que te da el error en la línea 29 se produce más arriba, sólo que php te indica la última línea de la sentencia que da problemas. En este caso mysql_query, así que mejor muestra toda esa parte para que podamos analizarlo.

Por el error queda he de preguntar si estas establecimiento más arriba la conexión a la bd?
__________________
Unset($vida['malRollo']);
  #18 (permalink)  
Antiguo 22/04/2016, 03:13
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por pateketrueke Ver Mensaje
La linea de error no indica dónde se originó el error, indica dónde finaliza la instrucción que produce el error.

Es obvio que en esa linea no está el problema, pero si piensas bien lo que dije antes "dónde finaliza la instrucción" descubrirás que se refiere a mysql_query().

Ahora, con algo más de curiosidad podrías usar un traductor en linea para lo siguiente:


Traducción:


¿Se entiende la causa del problema?
Si, bueno, he estado mirando información y he visto que la forma de hacer la conexión a la BBDD es de la siguiente manera:
Código PHP:
Ver original
  1. $server     = 'localhost'; //servidor
  2. $username   = 'xxxxxx'; //usuario de la base de datos
  3. $password   = 'yyyyyy'; //password del usuario de la base de datos
  4. $database   = 'mibasedatos'; //nombre de la base de datos
  5. @$conexion->connect($server, $username, $password, $database);
Decir que he probado a conectarme de esta manera, pero sin conseguir nada.
  #19 (permalink)  
Antiguo 22/04/2016, 03:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Hacer SUM correctamente

El código que muestras no sirve, a menos que tengas una variable llamada $conexion con un método connect() ¿o exactamente en qué parte del código defines dicha variable?

Cita:
Decir que he probado a conectarme de esta manera, pero sin conseguir nada.
¿Sólo copias y pegas código sin entender lo que hace verdad?

Por favor lee un manual: http://php.net/manual/es/book.mysql.php

PDTA: lo curioso es que originalmente usabas bien mysql_connect() que es para crear la conexión, en fin...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #20 (permalink)  
Antiguo 22/04/2016, 03:16
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por xerifandtomas Ver Mensaje
A ver perdona, quizás he sido demasiado literal, lo siento.

Es claro que eso es solo parte de la sentencia, aún que te da el error en la línea 29 se produce más arriba, sólo que php te indica la última línea de la sentencia que da problemas. En este caso mysql_query, así que mejor muestra toda esa parte para que podamos analizarlo.

Por el error queda he de preguntar si estas establecimiento más arriba la conexión a la bd?
La sentencia total es la siguiente:
Código SQL:
Ver original
  1. $resultado = mysqli_query("SELECT SUM(Sueldo) AS Sueldo,
  2.                                              SUM(Antiguedad) AS Antiguedad,
  3.                                              SUM(Dif_Ant) AS Dif_Ant,
  4.                                              SUM(Turnicidad) AS Turnicidad,
  5.                                              SUM(C_Puesto) AS C_Puesto,
  6.                                              SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.                                              SUM(C_Destino) AS C_Destino,
  8.                                              SUM(C_Prof_1) AS C_Prof_1,
  9.                                              SUM(C_Prof_2) AS C_Prof_2,
  10.                                              SUM(C_Prof_3) AS C_Prof_3,
  11.                                              SUM(C_Prof_4) AS C_Prof_4
  12.                                              FROM nomisferio") OR die("Error al ejecutar la consulta: ". mysqli_error());
Como ya he dicho, no he modificado nada de lo sugerido por gnzsoloyo.
Y mi conexión a la BBDD es la siguiente:
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['enviar'])) {
  3. $con = mysqli_connect ("localhost", "sueldos", "sueldos", "sueldos")
  4. or die ("ERROR. No se ha podido conectar  a la BBDD.");
  5. echo "<br/>";
También he probado de la siguiente manera, pero tampoco ha funcionado:
Código PHP:
Ver original
  1. $server     = 'localhost'; //servidor
  2. $username   = 'sueldos'; //usuario de la base de datos
  3. $password   = 'sueldos'; //password del usuario de la base de datos
  4. $database   = 'sueldos'; //nombre de la base de datos
  5. @$conexion->connect($server, $username, $password, $database);
  #21 (permalink)  
Antiguo 22/04/2016, 03:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Hacer SUM correctamente

Cita:
También he probado de la siguiente manera, pero tampoco ha funcionado:
Lee bien el manual de mysql_query(), el error es que dicha función espera dos argumentos pero tu sólo le pasas uno: la consulta.

¿Cual argumento hace falta?

Manual: http://php.net/mysql_query

PDTA: si te dicen "no modifiques" no significa "prueba otros códigos que no entiendas".
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #22 (permalink)  
Antiguo 22/04/2016, 03:23
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Hacer SUM correctamente

Centrémonos en el estilo por procedimientos, que es el que has utilizado asta ahora.

Obviamente te falta pasar un parámetro a mysqli_query, en este caso la conexión

Prueba así
Código PHP:
Ver original
  1. if (isset($_POST['enviar'])) {
  2. $con = mysqli_connect ("localhost", "sueldos", "sueldos", "sueldos")
  3. or die ("ERROR. No se ha podido conectar  a la BBDD.");
  4. echo "<br/>";

Código PHP:
Ver original
  1. $resultado = mysqli_query($con,"SELECT SUM(Sueldo) AS Sueldo,
  2.                                             SUM(Antiguedad) AS Antiguedad,
  3.                                             SUM(Dif_Ant) AS Dif_Ant,
  4.                                             SUM(Turnicidad) AS Turnicidad,
  5.                                             SUM(C_Puesto) AS C_Puesto,
  6.                                             SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.                                             SUM(C_Destino) AS C_Destino,
  8.                                             SUM(C_Prof_1) AS C_Prof_1,
  9.                                             SUM(C_Prof_2) AS C_Prof_2,
  10.                                             SUM(C_Prof_3) AS C_Prof_3,
  11.                                             SUM(C_Prof_4) AS C_Prof_4
  12.                                             FROM nomisferio") OR die("Error al ejecutar la consulta: ". mysqli_error($con));
__________________
Unset($vida['malRollo']);
  #23 (permalink)  
Antiguo 22/04/2016, 03:38
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por xerifandtomas Ver Mensaje
Código PHP:
Ver original
  1. $resultado = mysqli_query($con,"SELECT SUM(Sueldo) AS Sueldo,
  2.                                             SUM(Antiguedad) AS Antiguedad,
  3.                                             SUM(Dif_Ant) AS Dif_Ant,
  4.                                             SUM(Turnicidad) AS Turnicidad,
  5.                                             SUM(C_Puesto) AS C_Puesto,
  6.                                             SUM(C_Niv_Retr) AS C_Niv_Retr,
  7.                                             SUM(C_Destino) AS C_Destino,
  8.                                             SUM(C_Prof_1) AS C_Prof_1,
  9.                                             SUM(C_Prof_2) AS C_Prof_2,
  10.                                             SUM(C_Prof_3) AS C_Prof_3,
  11.                                             SUM(C_Prof_4) AS C_Prof_4
  12.                                             FROM nomisferio") OR die("Error al ejecutar la consulta: ". mysqli_error($con));
Esta prueba es una de las que ya había probado, este es el error que me muestra utilizando esta sentencia:
Código HTML:
Ver original
  1. Fatal error: Function name must be a string in C:\wamp\www\sueldos\action_sueldos.php on line 31
La línea, o líneas, a la que se refiere son las siguienteS:
Código PHP:
Ver original
  1. $total = $row('Sueldo') + $row('Antiguedad') + $row('Dif_Ant') + $row('Turnicidad')
  2. + $row('C_Puesto') + $row('C_Niv_Retr') + $row('C_Destino') + $row('C_Prof_1')
  3. + $row('C_Prof_2') + $row('C_Prof_3') + $row('C_Prof_4');
  #24 (permalink)  
Antiguo 22/04/2016, 03:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Hacer SUM correctamente

Los arrays se leen usando corchetes, y las funciones con paréntesis:

Código PHP:
Ver original
  1. // MAL
  2. $row('columna')
  3.  
  4. // BIEN
  5. $row['columna']

Así que $row es un array, no una función.

Por favor, lee un manual: http://php.net/manual/es/language.types.array.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #25 (permalink)  
Antiguo 22/04/2016, 04:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Hacer SUM correctamente

Sorry... ese último error se me deslizó a mi con el apuro.
Codifique a mano sin usar el editor de PHP que uso así que se escapó el defecto sintáctico.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #26 (permalink)  
Antiguo 22/04/2016, 04:37
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Sorry... ese último error se me deslizó a mi con el apuro.
Codifique a mano sin usar el editor de PHP que uso así que se escapó el defecto sintáctico.
Bueno, aún poniéndolo entre [] me sigue mostrando errores.
Esta vez los siguientes:
Código HTML:
Ver original
  1. Notice: Undefined index: Sueldo in C:\wamp\www\sueldos\action_sueldos.php on line 31
  2. Notice: Undefined index: C_Puesto in C:\wamp\www\sueldos\action_sueldos.php on line 32
Y así con todos los valores.
Lógicamente me muestra estos errores ya que en ningún momento recupero esos valores en el fichero, ya que no se encuentran en el formulario que hace referencia a este fichero, no sé si me explico correctamente.

Volviendo a la duda inicial.
Lo único que falta por hacer es igualar la categoría y el mes escogido a un ID_Nomisferio, es decir, Categoría + Mes = ID_Nomisferio.

Alguna idea de como hacer esto? Tengo la impresión de que es una tarea bastante sencilla, pero estoy atascado y no consigo avanzar.

Gracias.
  #27 (permalink)  
Antiguo 22/04/2016, 04:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Hacer SUM correctamente

Cita:
Y así con todos los valores.
El error "undefined index" te indica que dicha propiedad o clave del array no está presente.

Primero inspecciona el objeto completo con var_dump() para ver cómo es:
Código PHP:
Ver original
  1. var_dump($row);

¿Qué te muestra?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #28 (permalink)  
Antiguo 22/04/2016, 05:02
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Hacer SUM correctamente

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Qué te muestra?
Esto es lo que me muestra:
Código HTML:
Ver original
  1. array (size=11)
  2.   0 => string '586.67' (length=6)
  3.   1 => string '19.31' (length=5)
  4.   2 => string '9.95' (length=4)
  5.   3 => string '36.45' (length=5)
  6.   4 => string '541.30' (length=6)
  7.   5 => string '2.93' (length=4)
  8.   6 => string '338.29' (length=6)
  9.   7 => string '116.20' (length=6)
  10.   8 => string '232.56' (length=6)
  11.   9 => string '310.34' (length=6)
  12.   10 => string '426.31' (length=6)
Es decir, la suma de todas las columnas, los sueldos, antigüedad...
  #29 (permalink)  
Antiguo 22/04/2016, 05:35
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Hacer SUM correctamente

Cita:
Lo único que falta por hacer es igualar la categoría y el mes escogido a un ID_Nomisferio, es decir, Categoría + Mes = ID_Nomisferio.
Pues eso es algo que debes de determinar tu, por que solo tu sabes como se relacionan esos datos entre si, por lo menos yo desconozco como determinar ID_Nomisferio a raíz de la categoría y el mes, es más me parece una relación un tanto extraña, pero no me atrevo a decir más. En otro hilo te dije, que replantearas tus tablas y como se relacionaban, por que aun que sólo mostraba información de forma parcial y desconozco el fin de todo esto y su estructura, sonaba y suena a inconsistencia.

Si esto es lo que te devuelve el var_dump y quieres hacer la suma de todo esto
Código PHP:
Ver original
  1. array (size=11)
  2.   0 => string '586.67' (length=6)
  3.   1 => string '19.31' (length=5)
  4.   2 => string '9.95' (length=4)
  5.   3 => string '36.45' (length=5)
  6.   4 => string '541.30' (length=6)
  7.   5 => string '2.93' (length=4)
  8.   6 => string '338.29' (length=6)
  9.   7 => string '116.20' (length=6)
  10.   8 => string '232.56' (length=6)
  11.   9 => string '310.34' (length=6)
  12.   10 => string '426.31' (length=6)

Puedes hacer algo asi:
Código PHP:
Ver original
  1. $total=0;
  2. foreach (  $row as $clave =>  $valor ){
  3. $total=$total+$valor;
  4. }
  5. echo $total;
__________________
Unset($vida['malRollo']);
  #30 (permalink)  
Antiguo 22/04/2016, 05:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Hacer SUM correctamente

O usar array_sum() y ya.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: correctamente, mysql, select, sum, variable
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 10:56.