Foros del Web » Programando para Internet » PHP »

Consulta múltiple en base de datos

Estas en el tema de Consulta múltiple en base de datos en el foro de PHP en Foros del Web. Tengo una BD MySQL con los campos nombre tipo posicion sexo edad y otros datos adicionales 1º) Si yo coloco sólo la fecha de nacimiento. ...
  #1 (permalink)  
Antiguo 30/10/2003, 08:25
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Consulta múltiple en base de datos

Tengo una BD MySQL con los campos
nombre
tipo
posicion
sexo
edad

y otros datos adicionales

1º) Si yo coloco sólo la fecha de nacimiento. Cómo se calcula y mantiene actualizado el campo edad?

2º) Como puedo hacer una consulta a la BD via formulario que me permita elegir tipo, posicio, sexo y edad (entre dos numeros) y además si quiero poner un nombre

Les cuento que son mis comienzos en PHP y MySQL y hasta ahora solo hice BD simples de una sola tabla y con un ABM sencillo.

Gracias por sus respuestas
Saludos
Sergio
  #2 (permalink)  
Antiguo 30/10/2003, 08:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) ... Calculandolo .. Si sabes que dia estamos y sabes la fecha de ese campo .. Saca los años transcurridos.

No sé si usas campos tipo DATE para esa fecha, pero sería altamente recomendable. Así podrías usar funciones de tratamiento de fechas para Mysql como TO_DAYS() o funciones similares para hacer ese tipo de cálculos.

Te dejo el link hacia el apartado correspondiente en Mysql:
http://www.mysql.com/doc/en/Date_and...functions.html

2) .. Se trata que uses mas SQL .. en concreto "condicionales" tipo: WHERE campo = 'valor' o WHERE campo = 'valor' AND otrocampo = 'otrovalor' .... o incluso usar LIKE '%valor%' .. Donde valor puede ser una variable tuya PHP tipo $variable ...

Y lo de la fecha entre rangos .. será otro WHERE ('donde') tu campo fecha .. sea mayor que > y (AND) menor que < la fecha que indiques o usas funciones para tal fin como

En resumen .. el 99% es SQL lo que necesitas saber. Eso lo define en el manual de Mysql. Si tienes dudas al respecto usa el foro de "Base de datos" donde te podrán orientar mejor.

Lee también:
http://www.mysql.com/doc/en/Column_types.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/10/2003, 08:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

No almacenes la edad, almacena la fecha de nacimiento. Si necesitas mostrar la edad, haz el calculo. Mirando en el manual (http://www.mysql.com/doc/en/Date_and...functions.html), en los comentarios de los usuarios viene esta consulta:

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(dob)), '%Y')+0 AS age FROM people;

siendo 'dob' la fecha de nacimiento de la tabla 'people'

Y tu segunda pregunta es crear el WHERE, comparando el campo con el valor elegido en el formulario, y uniendo las condiciones con AND. Para el rango tienes el BETWEEN (http://www.mysql.com/doc/en/Comparison_Operators.html).

Saludos.

PD: Las consultas de SQL mejor en el foro de base de datos.

PD2: Cluster, tenemos que dejar de "chocar" asi.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 30/10/2003 a las 08:45
  #4 (permalink)  
Antiguo 30/10/2003, 09:01
 
Fecha de Ingreso: abril-2002
Ubicación: Argentina
Mensajes: 96
Antigüedad: 15 años, 8 meses
Puntos: 0
Gracias por sus respuestas.. veré que puedo hacer
Saludos
Sergio
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 05:44.