Foros del Web » Programando para Internet » PHP »

Recoger fila de BBDD mediante PHP

Estas en el tema de Recoger fila de BBDD mediante PHP en el foro de PHP en Foros del Web. Buenas! Os comento. Tengo una tabla llamada nomisferio en la BBDD en la cual tengo las columnas de ID_Nomisferio, ID_Categoría(relacionado con la tabla categoría), Mes ...
  #1 (permalink)  
Antiguo 13/04/2016, 02:15
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años
Puntos: 0
Recoger fila de BBDD mediante PHP

Buenas!
Os comento.
Tengo una tabla llamada nomisferio en la BBDD en la cual tengo las columnas de ID_Nomisferio, ID_Categoría(relacionado con la tabla categoría), Mes y una serie de columnas con unos importes.

Tengo una página en la cual el usuario tiene que escoger una categoría y un mes.
Necesito que dependiendo que categoría y que mes escoja el usuario, me recoja los datos de ese ID_Nomisferio en concreto de la tabla nomisferio y me sume los importes de las demás columnas.

Alguien sabe como se puede hacer?
Muchas gracias
  #2 (permalink)  
Antiguo 13/04/2016, 06:58
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Recoger fila de BBDD mediante PHP

Pues

Recuperas los datos del form
Conectas a la bd
Haces las consultas necesarias, y recuperas los datos
Sí no vas a necesitar más la bd, cierras conexión
Haces las operaciones necesarias
Imprimes los datos.
Algo así más o menos.

De verdad esperas que te podamos dar una solución a tu enunciado con tan escasa información.

Por favor intenta hacer preguntas concretas sobre temas concretos, aportando lo que tienes hecho en ese momento si es necesario o indicando como lo has intentado realizar.

Mal:
Tengo tablas con campos que guardan cosas, como el mes, el id, la categoría y otras cosas.
Quiero poder seleccionar una categoría y un mes, y que sume las demás cosas.

Mejor:
Quiero realizar una consulta a la base de datos filtrando por un id y mes dado, y sumar los campos precio1 y precio2 de la tabla1.

Las tablas que tengo son las siguientes:

Tabla 1:
Resultado: SHOW CREATE TABLE tabla1
Tabla2:
Resultado: SHOW CREATE TABLE tabla2

Actualmente recibo la categoría y el id desde un un form mediante post/get correctamente, mediante el siguiente código he tratado de conseguirlo:

Pegar Tu código


Pero me da el siguiente error:
Pegar el mensaje de error

La línea que indica el error es esta:
Pegar línea donde da error.
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 13/04/2016, 07:07
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Recoger fila de BBDD mediante PHP

Tu problema es de MySql, no de PHP, lo solucionas con un JOIN, INNER JOIN o similar...

Código SQL:
Ver original
  1. SELECT tabla1.idciudad, tabla1.ciudad, tabla2.población
  2. FROM table1
  3. INNER JOIN table2
  4. ON table1.idciudad=table2.idciudad;
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 14/04/2016, 01:55
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años
Puntos: 0
Respuesta: Recoger fila de BBDD mediante PHP

Es cierto que no me he explicado correctamente.

Veamos.
Tengo un fichero llamado sueldos.php en el que se encuentra el formulario con los campos, este es el código.
Código HTML:
Ver original
  1. <form method="post" name="action_sueldos" id="alta" action="action_sueldos.php" autocomplete="off">
  2.     <div id="todo">
  3.         <div id="uno">
  4.     <label for="categoria">Categoria:</label>
  5.     <select style="width:208px; border-width: 1px; border-style: solid;" name = "categoria" value = "<?php
  6.     if (isset($_POST['categoria'])) {
  7.     echo $_POST['categoria'];
  8.     }?>">
  9.     <option>        </option>
  10.     <option> Auxiliar Enfermer&iacutea </option>
  11.     <option> DUE </option>
  12.     <option> Operario de Servicios </option>
  13.     <option> Cocinero </option>
  14.     <option> Auxiliar Administrativo </option>
  15.     <option> Of. Mantenimiento nivel 17cins </option>
  16.     <option> Of. Mantenimiento nivel 15cins </option>
  17.     <option> FEAS </option>
  18.                
  19.     </select>
  20.                    
  21.     <label for="mes">Mes:</label>
  22.     <select style="width:208px; border-width: 1px; border-style: solid;" name = "mes" value = "<?php
  23.         if (isset($_POST['mes'])) {
  24.         echo $_POST['mes'];
  25.         }?>">
  26.         <option>        </option>
  27.             <option> Enero       </option>
  28.         <option> Febrero      </option>
  29.         <option> Marzo       </option>
  30.         <option> Abril       </option>
  31.         <option> Mayo       </option>
  32.         <option> Junio       </option>
  33.         <option> Julio       </option>
  34.         <option> Agosto       </option>
  35.         <option> Septiembre    </option>
  36.         <option> Octubre       </option>
  37.         <option> Noviembre       </option>
  38.         <option> Diciembre       </option>
  39.                            
  40.         </select>
  41.                            
  42.         <label for="dias_trabajados">Días trabajados:</label><input type="number" name="dias_trabajados" id="dias" size="26"/> </br>       
  43.         </br>  
  44.         </div>
  45.         <div id="dos">
  46.         <legend align='center'><h3>Conceptos Variables  </h3></br></legend>
  47.         <label for="compfestdia">Complemento Festivos Dia:</label><input type="decimal" name="compfestdia" id="compfestdia" size="26"/> </br>
  48.         </br>
  49.         <label for="sueldo">Hospital:</label><input type="checkbox" name="hospital" id="hospital" size="26"/> </br>
  50.         </br>
  51.         <legend> Seleccione su tipo de jornada: </legend>
  52.         <label>
  53.         <input name="radiobutton" type="radio" value="continua" checked/>Continua
  54.         </label>
  55.         </br>
  56.         </br>
  57.         <label>
  58.         <input name="radiobutton" type="radio" value="radiobutton" />Turnos
  59.         </label>
  60.         </br>
  61.         </br>
  62.         <label>
  63.         <input name="radiobutton" type="radio" value="radiobutton" />Partida
  64.         </label>
  65.         </br>
  66.         </br>
  67.         <label for="trienio">Cantidad de trienios:</label><input type="number" name="trienio" id="trienio" size="26"/> </br>
  68.         </div>
  69.         <div id="tres">
  70.         <input type="submit" name="enviar" value="Realizar Calculo" style="position:center"/>
  71.         </div>

El action de este fichero contiene el siguiente código:
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['enviar'])) {
  3. $con = mysqli_connect ("localhost", "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']);

Ahora mismo solo recupero los valores del formulario.
Lo que tengo que hacer es lo siguiente:
- Dependiendo de la categoría y el mes que escoja el usuario, tendrán que sumarse unos conceptos fijos que tengo almacenados en la BBDD, los cuales no aparecen en el formulario. Estos conceptos fijos son diferentes para cada categoría.
- Dependiendo el mes que escoja, esa suma de los conceptos fijos deberá de multiplicarse por el número de días que contiene ese mes, es decir, si es enero se multiplicará por 31, febrero por 28...
- En el caso de que el usuario inserte unos valores en los conceptos variables, estos deberán sumarse al importe total de los conceptos fijos multiplicado por los días del mes.
- Dependiendo que tipo de radio botón seleccione el usuario deberá sumar una cantidad u otra.

Tras recuperar los valores, tengo el siguiente código, el cual tiene pinta de estar mal.
Código PHP:
Ver original
  1. if (isset($_POST['enviar'])){
  2. if ($_POST['categoria'] == 'nombre')&&($_POST['mes'] == 'enero')||($_POST['mes'] == 'marzo')||($_POST['mes'] == 'mayo')||($_POST['mes'] == 'julio')||($_POST['mes'] == 'agosto')||($_POST['mes'] == 'octubre')||($_POST['mes'] == 'diciembre')
Después de especificar que mes elige el usuario, vendría el código que realiza la suma de los conceptos fijos.

No sé si me he explicado bien ahora.
Muchas gracias.

Última edición por ivan7; 14/04/2016 a las 02:02
  #5 (permalink)  
Antiguo 14/04/2016, 05:33
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Recoger fila de BBDD mediante PHP

Cita:
Dependiendo de la categoría y el mes que escoja el usuario, tendrán que sumarse unos conceptos fijos que tengo almacenados en la BBDD, los cuales no aparecen en el formulario. Estos conceptos fijos son diferentes para cada categoría.
Pues empecemos por el principio, recuperar el sueldo base. ¿En tabla categorías?
Código SQL:
Ver original
  1. SELECT sueldo FROM categoríAS WHERE id_categoria=$categiria_seleccionada_en_form
Con una consulta similar puedes obtener el sueldo base

Cita:
Dependiendo el mes que escoja, esa suma de los conceptos fijos deberá de multiplicarse por el número de días que contiene ese mes, es decir, si es enero se multiplicará por 31, febrero por 28
Calcular días del mes y multiplicar por sueldo base.

Cita:
En el caso de que el usuario inserte unos valores en los conceptos variables, estos deberán sumarse al importe total de los conceptos fijos multiplicado por los días del mes.
Validar datos introducidos en conceptos variables
calcular el monte de los conceptos variables
Multiplicar por los días del mes seleccionado
Y sumar al sueldo base

Cita:
Dependiendo que tipo de radio botón seleccione el usuario deberá sumar una cantidad u otra.
Comprobar radio button seleccionado
Sumar a sueldo base el radio button seleccionando
__________________
Unset($vida['malRollo']);
  #6 (permalink)  
Antiguo 14/04/2016, 05:47
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años
Puntos: 0
Respuesta: Recoger fila de BBDD mediante PHP

Cita:
Iniciado por xerifandtomas Ver Mensaje
Pues empecemos por el principio, recuperar el sueldo base. ¿En tabla categorías?
El sueldo, y todos los demás conceptos, tanto fijos como variables están en la tabla nomisferio. La tabla categorías únicamente contiene las columnas:
- ID_Categoria
- Descripción

Lo que tiene que pasar es que si el usuario escoge una categoría y un mes, sale un ID_Nomisferio de la tabla nomisferio de la BBDD, ya que cada categoría tiene 3 filas, una para cada tipo de mes. Ese ID_Nomisferio contiene sus propios importes para los conceptos fijos y variables.
Lo que no sé como hacer es que escoja esa fila en concreto de la BBDD y además, sumar esos valores fijos y multiplicarlos, para después sumarle los valores variables en caso de que haya marcado el usuario.

Última edición por ivan7; 14/04/2016 a las 05:57
  #7 (permalink)  
Antiguo 14/04/2016, 05:58
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Recoger fila de BBDD mediante PHP

Cita:
Lo que tiene que pasar es que si el usuario escoge una categoría y un mes, sale un ID_Nomisferio de la tabla nomisferio de la BBD. Ese ID_Nomisferio contiene sus propios importes para los conceptos fijos y variables.
Lo que no sé como hacer es que escoja esa fila en concreto de la BBDD y además, sumar esos valores fijos y multiplicarlos, para después sumarle los valores variables en caso de que haya marcado el usuario.
Tu mismo te has dado la respuesta. En base a ese id haces tu consulta a la tabla.

Código SQL:
Ver original
  1. SELECT * FROM nombre_table WHERE id=$id_traido_desde_form
O
Código SQL:
Ver original
  1. SELECT id, (campo1 + campo2) total FROM nombre_tabla WHERE id=$id_traido_desde_form
__________________
Unset($vida['malRollo']);
  #8 (permalink)  
Antiguo 14/04/2016, 06:06
 
Fecha de Ingreso: abril-2016
Mensajes: 36
Antigüedad: 8 años
Puntos: 0
Respuesta: Recoger fila de BBDD mediante PHP

Cita:
Iniciado por xerifandtomas Ver Mensaje
Tu mismo te has dado la respuesta. En base a ese id haces tu consulta a la tabla.
[/HIGHLIGHT]
Si, pero es el usuario el que tiene que seleccionar tanto la categoría como el mes, y, dependiendo las opciones que marque será un ID_Nomisferio u otro, y dependiendo que ID_Nomisferio sea tendrá unos valores en cada concepto.

Como habrás podido ver, en el fichero action recupero todos los campos del formulario que existen, categoria, mes y varios conceptos variables.

Después tengo lo siguiente, lo cual no creo que esté bien:
Código PHP:
Ver original
  1. if (isset($_POST['enviado'])){
  2. if ($_POST['categoria'] == 'categoria')AND($_POST['mes'] == 'enero')OR($_POST['mes'] == 'marzo')OR($_POST['mes'] == 'mayo')OR($_POST['mes'] == 'julio')OR($_POST['mes'] == 'agosto')OR($_POST['mes'] == 'octubre')OR($_POST['mes'] == 'diciembre')

Lo que pretendo con este trozo de código es especificar que si el mes es de 31 días (todos esos meses los tienen) se multiplique por 31 la suma de los conceptos fijos.
Como puedo hacer que se recupere el ID_Nomisferio exacto de la BBDD dependiendo la selección que haga el usuario?
Y, como puedo recuperar los valores de los conceptos fijos de la tabla nomisferio si no aparecen en el formulario?

Muchas gracias, de verdad, pero no sé como puedo hacerlo
  #9 (permalink)  
Antiguo 14/04/2016, 08:31
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Recoger fila de BBDD mediante PHP

A ver hay algo en tu lógica que no entiendo. Creo que todo tu lio viene de un planteamiento erróneo o mal formulado desde el principio.

Supongo que lo primero será establecer el sueldo base, que como indicas están en una tabla.
Debes recuperar los datos de esa tabla y hacer un Select para que el usuario seleccione el sueldo base,
O bien determinar en base a que factores se establece si es un suelto base u otro.
__________________
Unset($vida['malRollo']);

Etiquetas: bbdd, fila, mediante, recoger, tabla
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:27.