Foros del Web » Programando para Internet » PHP »

CodeIgniter consulta en mysql

Estas en el tema de consulta en mysql en el foro de PHP en Foros del Web. Buenas tardes hojala alguien pueda ayudarme, tengo una tabla de anuncios en la cual uno de los campos es el id de la categoria de ...
  #1 (permalink)  
Antiguo 28/05/2011, 18:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años, 6 meses
Puntos: 2
Pregunta consulta en mysql

Buenas tardes hojala alguien pueda ayudarme, tengo una tabla de anuncios en la cual uno de los campos es el id de la categoria de ese anuncio entonces en una sola consulta quiero obtener cuantos anuncios hay (ejemplo) de bares y cuantos hay de restaurantes y asi sucesivamente de cada una de las categorias, por separado se como hacerlo pero requiero hacerlo de una sola consulta. de antemano gracias saludos.
  #2 (permalink)  
Antiguo 28/05/2011, 18:55
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: consulta en mysql

esto es tema de mysql pero sería

Código MySQL:
Ver original
  1. SELECT * FROM anuncios JOIN categorias ON
  2. anuncios.categoria = categoria.id AND id.categoria = ".$id.";

por supuesto que debes acomodarlo a los nombres de tu base de datos, ya que yo las desconozco y solo imagino como se llaman los campos.
  #3 (permalink)  
Antiguo 29/05/2011, 08:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años, 6 meses
Puntos: 2
Pregunta Respuesta: consulta en mysql

Cita:
Iniciado por memoadian Ver Mensaje
esto es tema de mysql pero sería

Código MySQL:
Ver original
  1. SELECT * FROM anuncios JOIN categorias ON
  2. anuncios.categoria = categoria.id AND id.categoria = ".$id.";

por supuesto que debes acomodarlo a los nombres de tu base de datos, ya que yo las desconozco y solo imagino como se llaman los campos.
Buenos dias mira lo que pasa que en esa consulta que me dices contaria especificamente lo de una categoria dentro de la tabla anuncios por esto esta condicion (AND id.categoria = ".$id.") y si le quito la condicion me cuenta todas las categorias y lo que yo requiero es que cuente lo de cada categoria en la tabla anuncios pero en una sola consulta, es decir hacer varios count en la misma consulta, no se como hacerlo.
  #4 (permalink)  
Antiguo 29/05/2011, 09:03
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: consulta en mysql

Que tal kriss8725,

Tu problema es de sql, deberías solicitar que te muevan el thread al foro correspondiente, y para lograr lo que deseas podrías hacer algo así:

Código MySQL:
Ver original
  1. SELECT category.name, COUNT(category.id) as total
  2. FROM category, post
  3. WHERE category.id = post.category_id
  4. GROUP BY category.id

te dejo una referencia al manual.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 29/05/2011, 09:07
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: consulta en mysql

probe tu consulta masterpuppet pero no me sirvio a mi, yo lo hice asi:

Código MySQL:
Ver original
  1. FROM anuncios
  2. GROUP BY categoria
  #6 (permalink)  
Antiguo 29/05/2011, 09:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: consulta en mysql

Cita:
Iniciado por memoadian Ver Mensaje
probe tu consulta masterpuppet pero no me sirvio a mi, yo lo hice asi:

Código MySQL:
Ver original
  1. FROM anuncios
  2. GROUP BY categoria
Muchas gracias esa es la consulta correcta. Saludos te ganaste tu karma
  #7 (permalink)  
Antiguo 29/05/2011, 09:14
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: consulta en mysql

Cita:
Iniciado por memoadian Ver Mensaje
probe tu consulta masterpuppet pero no me sirvio a mi, yo lo hice asi:

Código MySQL:
Ver original
  1. FROM anuncios
  2. GROUP BY categoria
No se sobre que tablas lo habrás probado, pero debería funcionar, el problema de como lo estas planteando es que no te devuelve a que categoría pertenece cada total.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 29/05/2011, 09:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: consulta en mysql

Cita:
Iniciado por masterpuppet Ver Mensaje
No se sobre que tablas lo habrás probado, pero debería funcionar, el problema de como lo estas planteando es que no te devuelve a que categoría pertenece cada total.
Si se puede saber de esta manera
Código:
SELECT idC,count(idC) FROM anuncios GROUP BY idC;
  #9 (permalink)  
Antiguo 29/05/2011, 09:25
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: consulta en mysql

Claro, si solo quieres el id si, pero por el tipo de pregunta asumí que querías un listado con categoría y total, algo así:

Bares 5
Restaurantes 8
etc...

todo depende de lo tu necesites, igual ya lo tienes resuelto.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 29/05/2011, 09:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: consulta en mysql

Cita:
Iniciado por masterpuppet Ver Mensaje
Claro, si solo quieres el id si, pero por el tipo de pregunta asumí que querías un listado con categoría y total, algo así:

Bares 5
Restaurantes 8
etc...

todo depende de lo tu necesites, igual ya lo tienes resuelto.

Saludos.
A ok vale, tal vez me explique mal pero muchas gracias por tus respuestas vale. Saludos
  #11 (permalink)  
Antiguo 29/05/2011, 09:31
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: consulta en mysql

claro que se puede suponiendo que la relacion es por id's

se puede hacer esto

Código MySQL:
Ver original
  1. SELECT categorias.nombre, count( anuncios.categoria ) AS total
  2. FROM anuncios
  3. JOIN categorias ON anuncios.categoria = categorias.id
  4. GROUP BY categoria

el resultado es:

nombre | total
bares | 3
hoteles | 2
autos | 1

Etiquetas: codeigniter, mysql
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 14:43.