Foros del Web » Programando para Internet » PHP »

Duda ... Consulta donde campo = texto

Estas en el tema de Duda ... Consulta donde campo = texto en el foro de PHP en Foros del Web. Saludos, Tengo una duda... Si estoy haciendo un catalogo de productos que se rige por dos tablas una de categorias y otra de productos, yo ...
  #1 (permalink)  
Antiguo 07/03/2013, 20:22
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 7 meses
Puntos: 28
Duda ... Consulta donde campo = texto

Saludos,

Tengo una duda...

Si estoy haciendo un catalogo de productos que se rige por dos tablas una de categorias y otra de productos, yo puedo hacer que en vez de tener en mi tabla de productos

Id_marca (INT) que obvio me arrojará un valor numérico, puedo tener un campo marca (TEXT) para que yo pueda hacer en mi consulta

Código PHP:
@$cat=$_REQUEST['marca'];
$query "select * from productos where marca= $cat "
Es valido eso sin necesidad que sea un valor numérico?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 08/03/2013, 07:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: Duda ... Consulta donde campo = texto

Si el campo es numerico no admite cosas no numéricas.... no hay mas...

Tu problema es que te falta una tabla "marcas"

Marcas
idMarca
Marca
....


Luego puedes enlazar esa tabla con la de productos y buscar por el idMarca o por marca (texto).

Ahora bien si estas usando un input type select debes hacer que el value de las options sea el idMarca y el texto mostrado el nombre con lo que el usuario va a ver el nombre pero vas ha hacer la consulta con el id... Esto no te libra de la necesidad de tener la tabla marcas si no la tienes como vas a construir ese select.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 08/03/2013, 09:48
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: Duda ... Consulta donde campo = texto

Código PHP:
Ver original
  1. //Para consultas sql con valores alfanumericos se usa el like
  2. @$cat=$_REQUEST['marca'];
  3. //Esta opcion te muestra todos los registros que contengan el valor que lleva $cat
  4. $query = "select * from productos where marca like '%$cat%' ";
  5. //Esta te muestra los registros que empiecen con el valor que lleva $cat
  6. $query = "select * from productos where marca like '$cat%' ";
  7. //Esta te muestra los registros que terminen con el valor que lleva $cat
  8. $query = "select * from productos where marca like '%$cat' ";
  9. //Esta te obliga a que el valor de marca y $cat sean iguales
  10. $query = "select * from productos where marca like '$cat' ";
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #4 (permalink)  
Antiguo 08/03/2013, 14:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: Duda ... Consulta donde campo = texto

Si el campo es numérico no admite cosas no numéricas.... no hay mas...

1. Para que usar LIKE si tienes el valor completo es MUCHO mas eficiente usar =
2. Si tienes en productos el id de la marca p.e. 11 y la marca es "CocaCola" ya puedes poner LIKE que en 11 no va a encontrar CocaCola...

En productos va el id_marca (INT) y en marcas id_marca (INT) y marca (VARCHAR(el ancho que quieras)).

Asi si tienes 1000 productos de la marca 1 de un nombre larguiiiiisssimmoo vas a guardar ese nombre largo una vez y 1000 veces el 1 (id_marca). En cambio si tienes el varchar en productos tendras que guardar 1000 ese nombre tan largo...

ves ahora el beneficio de las tres tablas...

Productos

Categorias

Marcas
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 08/03/2013, 14:42
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: Duda ... Consulta donde campo = texto

Yo nunca dije que era la forma mas optima simplemente respondi la pregunta que hicieron y fue como comparar un campo tipo texto, y si es mejor relacionar una tabla marcas con el producto de eso no hay duda.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co

Etiquetas: campo, select, 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 06:32.