Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO buscar por categoria

Estas en el tema de buscar por categoria en el foro de PHP en Foros del Web. Buenas estoy creando un panel de control y lo que pasa es que tengo 2 tablas categorias: idcat, categoria. productos: idpro, categoria, modelo, precio. Yo ...
  #1 (permalink)  
Antiguo 26/05/2014, 17:44
 
Fecha de Ingreso: marzo-2014
Mensajes: 19
Antigüedad: 5 años, 8 meses
Puntos: 1
buscar por categoria

Buenas estoy creando un panel de control
y lo que pasa es que tengo 2 tablas

categorias:
idcat, categoria.

productos:
idpro, categoria, modelo, precio.

Yo e intentado asi
(SELECT * FROM categorias, productos WHERE categorias.categoria=productos.categoria)

de lo cual al darle clic en una opcion no encuentra nada espero sus respuestas estare agradecido.
<select>
<option>reloj</option>
<option>aros</option>
</select>
  #2 (permalink)  
Antiguo 26/05/2014, 18:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.975
Antigüedad: 11 años, 3 meses
Puntos: 2190
Respuesta: buscar por categoria

Tu problema no es de PHP, sino de MySQL y sería mejor usar JOIN.

Primero, déjame decirte que es más conveniente que en la tabla productos utilices id de categoría y no el nombre, porque si modificas el nombre te vas a meter en muchos líos.

Luego, si lo que quieres es mostrar productos por categoría, entonces tu tabla principal debe ser la de productos:

Ok, ahora la consulta:
Código MySQL:
Ver original
  1. SELECT p.*, c.categoria FROM productos p
  2. JOIN categorias c ON c.idcat = p.idcat

Si vas a listar todos los productos, convendría ordenarlos por idcat, para que salgan agrupados:
ORDER BY p.idcat

Si vas a mostrar solo los productos de una categoría entonces agrega un filtro:
WHERE p.idcat = ???

Debes reemplazar ??? por el id de categoría a mostrar.

Luego, en el select debes especificar id y nombre de categoría, ejemplo:
Código HTML:
Ver original
  1. <select name="categoria">
  2.     <option value="1">Reloj</option>
  3.     <option value="2">Aros</option>
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 28/05/2014, 17:01
 
Fecha de Ingreso: marzo-2014
Mensajes: 19
Antigüedad: 5 años, 8 meses
Puntos: 1
Respuesta: buscar por categoria

Cita:
Iniciado por Triby Ver Mensaje
Tu problema no es de PHP, sino de MySQL y sería mejor usar JOIN.

Primero, déjame decirte que es más conveniente que en la tabla productos utilices id de categoría y no el nombre, porque si modificas el nombre te vas a meter en muchos líos.

Luego, si lo que quieres es mostrar productos por categoría, entonces tu tabla principal debe ser la de productos:

Ok, ahora la consulta:
Código MySQL:
Ver original
  1. SELECT p.*, c.categoria FROM productos p
  2. JOIN categorias c ON c.idcat = p.idcat

Si vas a listar todos los productos, convendría ordenarlos por idcat, para que salgan agrupados:
ORDER BY p.idcat

Si vas a mostrar solo los productos de una categoría entonces agrega un filtro:
WHERE p.idcat = ???

Debes reemplazar ??? por el id de categoría a mostrar.

Luego, en el select debes especificar id y nombre de categoría, ejemplo:
Código HTML:
Ver original
  1. <select name="categoria">
  2.     <option value="1">Reloj</option>
  3.     <option value="2">Aros</option>
te pasaste bro segui tu sugerencia y me va de lujo GRACIAS te doy 1000LIKE XD

Etiquetas: 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 18:01.