Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/04/2016, 06:07
ivan7
 
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.