Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO URGE!!PHP Y MYSQL (Select dependientes con base de datos)

Estas en el tema de URGE!!PHP Y MYSQL (Select dependientes con base de datos) en el foro de PHP en Foros del Web. Hola buenos días, soy nuevo en el foro y me acabo de registrarme. Si alguien me puede echar un cable con un problema que tengo. ...
  #1 (permalink)  
Antiguo 19/04/2016, 02:54
 
Fecha de Ingreso: abril-2016
Ubicación: Madrid
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
URGE!!PHP Y MYSQL (Select dependientes con base de datos)

Hola buenos días, soy nuevo en el foro y me acabo de registrarme. Si alguien me puede echar un cable con un problema que tengo.

Lo estoy desarrollando con PHP y MSQL
Mi tabla esta cargada con dos campos SUPERFAMILIA Y FAMILIA

SUPERFAMILIA -------FAMILIA

BOTIQUÍN--------Agujas
BOTIQUÍN--------Antisépticos
BOTIQUÍN--------Apósitos
BUCAL------------Aftas
BUCAL------------Cepillos e Irrigadores
BUCAL------------Colutorios
CAPILAR----------Anticaída
CAPILAR----------Anticaspa
CAPILAR----------Antipiojos
CORPORAL-------Anticelulíticos
CORPORAL-------Desodorantes Cuerpo
CORPORAL-------Embarazo
DIETÉTICA-------Control de Peso
DIETÉTICA-------Nutrición Deportiva
DIETÉTICA-------Nutrición Infantil
FACIAL-----------Antiacné
FACIAL-----------Antiedad
FACIAL-----------Antimanchas
HERBOLARIO----Alimentación Infantil Bio
HERBOLARIO----Aromaterapia
HERBOLARIO----Infusiones
HOMBRE-----------Afeitado
HOMBRE-----------Desodorantes
HOMBRE-----------Hidratación
INFANTIL-----------Biberones
INFANTIL-----------Chupetes
INFANTIL-----------Cuidado Piel

En el formulario me debe aparecer un select con las opciones de SUPERFAMILIA y según la opción que se escoja debe cargar el segundo select.
Ejemplo: selecciono BOTICA en el segundo select me debe aparecer Agujas | Antisépticos | Apósitos
Y así dinamicamente según la opción que escoja, no me vale ponerlo directamente las opciones ya que el CAMPO SUPERFAMILIA y FAMILIA va ir aumentando; y tengo que siempre cargarlo desde la base de datos de mysql.
La duda que me surge es como coger el valor el primer select dinamicamente en el mismo php para pasarle a la consulta (query) del segundo select.
  #2 (permalink)  
Antiguo 19/04/2016, 03:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 38
Antigüedad: 15 años, 7 meses
Puntos: 2
Agrégale un identificador... Y cuando realices el armado del select... Le pones como value al option ... Ese mismo identificador... De tal manera de que cuando cambie, puedas tomar ese identificador y con base a ello proseguir a cargar la familia.

Debes de realizar bien la relación de tus tablas.
  #3 (permalink)  
Antiguo 19/04/2016, 03:21
 
Fecha de Ingreso: abril-2016
Ubicación: Madrid
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Respuesta: URGE!!PHP Y MYSQL (Select dependientes con base de datos)

Cita:
Iniciado por YorchX Ver Mensaje
Agrégale un identificador... Y cuando realices el armado del select... Le pones como value al option ... Ese mismo identificador... De tal manera de que cuando cambie, puedas tomar ese identificador y con base a ello proseguir a cargar la familia.

Debes de realizar bien la relación de tus tablas.
Hola gracias por tu tiempo, mi problema es como cojo el value del option para pasarle al segundo select en el mismo formulario(dinamicamente) y proceder hacer la CONSULTA. Al parecer me hace falta una función de JavaScript para que cuando haga el evento se llame a esa funcion, pero no se por donde empezar.

Última edición por oscarfabriciopillajo; 19/04/2016 a las 03:42
  #4 (permalink)  
Antiguo 19/04/2016, 04:41
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: URGE!!PHP Y MYSQL (Select dependientes con base de datos)

Con DISTINCT puedes seleccionar las diferentes superfamilias
Código SQL:
Ver original
  1. SELECT DISTINCT superfamilia FROM MiTabla

Y cuando con eso construyes tu select de familias.
Al seleccionar una familia mandas el nombre o id, en tu caso si solo tienes esa tabla el nombre de la superfamilia.

Y con el nombre haces una consulta similar a la siguiente para obtener todos los productos de la superfamilia.

Código SQL:
Ver original
  1. SELECT * FROM MiTabla WHERE famila=familia_seleccionada

De todas formas espero que esto solo sea un ejercicio para aprender, que nos pongas solo esos datos a modo de ejemplo.

Por que toda tabla debe de tener un PK.

Y por qué según se deduce de tu enunciado, lo más probables es que se deban crear 2 tablas una para superfamilia y otra para famila con una relación 1:N, uno a muchos.
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 19/04/2016 a las 04:47
  #5 (permalink)  
Antiguo 19/04/2016, 04:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: URGE!!PHP Y MYSQL (Select dependientes con base de datos)

https://www.google.es/?gws_rd=ssl#q=...s%20php%20ajax
  #6 (permalink)  
Antiguo 19/04/2016, 05:20
 
Fecha de Ingreso: abril-2016
Ubicación: Madrid
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Respuesta: URGE!!PHP Y MYSQL (Select dependientes con base de datos)

Cita:
Iniciado por xerifandtomas Ver Mensaje
Con DISTINCT puedes seleccionar las diferentes superfamilias
Código SQL:
Ver original
  1. SELECT DISTINCT superfamilia FROM MiTabla

Y cuando con eso construyes tu select de familias.
Al seleccionar una familia mandas el nombre o id, en tu caso si solo tienes esa tabla el nombre de la superfamilia.

Y con el nombre haces una consulta similar a la siguiente para obtener todos los productos de la superfamilia.

Código SQL:
Ver original
  1. SELECT * FROM MiTabla WHERE famila=familia_seleccionada

De todas formas espero que esto solo sea un ejercicio para aprender, que nos pongas solo esos datos a modo de ejemplo.

Por que toda tabla debe de tener un PK.

Y por qué según se deduce de tu enunciado, lo más probables es que se deban crear 2 tablas una para superfamilia y otra para famila con una relación 1:N, uno a muchos.

Hola gracias por tu tiempo, igual lo estoy enfocando mal, lo que estoy desarrollando es un catalogo, con una base de datos de mas de 10000 productos, entonces lo que me piden es crear un select con las SUPERFAMILIAS (la consulta del distinc ya la tenia) y según la opción seleccionada se cargue el segundo select en base al primero dinamicamente.
Lo que se me ocurrió es crear una nueva tabla con esos campos para hacer la consulta en esa tabla, nose si lo puedas enfocar de otra manera, pero de momento el problema que tengo es como coger la informacion del select en el mismo formulario sin necesidad de hacer un submit. para cargar el segundo select
  #7 (permalink)  
Antiguo 19/04/2016, 05:38
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: URGE!!PHP Y MYSQL (Select dependientes con base de datos)

Pues para eso necesitas AJAX. El compañero ya te dio un enlace a combos dependientes que es lo que estas buscando.

Las relaciones entre categorías y productos, siempre según los requerimientos, suelen ser relaciones mucho a muchos (N:N). Ya que en muchos proyectos, un producto puede pertenecer a muchas categorías y a se vez una categoría contiene muchos productos.

Este tipo de relaciones se hacen con una tabla intermedia y dos relaciones 1:N.

Como ejemplo:

Tabla categoria
id (PK)
nombre_categoria
resto_de_campos

Tabla producto
id (PK)
nombre_producto
resto_de_campos

Tabla intermedia categoria_producto
id (PK)
id_categoria
id_producto


De esta forma haciendo consultas a la tabla intermedia, puedes obtener:

Tanto todos los productos de una categoría
Código SQL:
Ver original
  1. SELECT * FROM categoria_producto WHERE id_categoria=categoria_a_buscar

Cómo todas las categorías de un producto
Código SQL:
Ver original
  1. SELECT * FROM categoria_producto WHERE id_producto=producto_a_buscar
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 19/04/2016 a las 05:54

Etiquetas: dependientes, formulario, mysql, select, sql, 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 13:51.