Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como reducir consultas a una base datos

Estas en el tema de Como reducir consultas a una base datos en el foro de Mysql en Foros del Web. Buenas tengo pagina que es un directorio comercial, en cual consulto a mi base lo siguiente Zapatos( 3 ), Ropa de Damas( 5 ), etc. ...
  #1 (permalink)  
Antiguo 30/06/2011, 09:26
 
Fecha de Ingreso: febrero-2011
Ubicación: Venezuela
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Como reducir consultas a una base datos

Buenas tengo pagina que es un directorio comercial, en cual consulto a mi base lo siguiente Zapatos(3), Ropa de Damas(5), etc. El problema radica es que tengo que hacer mas de 30 consultas a mi base datos para saber cuantas tiendas están en dicha categoría con un
Código MySQL:
Ver original
  1. LIKE '%NOMBRE-DE-CATEGORIA%'
en un campo llamado TAGS, me gustaría saber como hacer una sola consulta a la base datos. el codigo con cual hago la consulta es el siguiente:
Código MySQL:
Ver original
  1. $sql="SELECT COUNT(*) FROM tiendas_lavictoria  WHERE tags LIKE '%autopartes%'";
  2. $resultado=mysql_query($sql) or die (mysql_error());
  3. // accedes al resultado .. sólo se entrega un registro con ese campo de nombre que se usó en el "alias" (as) en la sentencia SQL
  4. $total=mysql_result($resultado,0);

Les agradecería a cualquiera que me puede orientar Muchas gracias.
  #2 (permalink)  
Antiguo 30/06/2011, 12:15
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como reducir consultas a una base datos

¿Puedes explicarlo de otra manera? Entiendo lo que haces con la consulta, lo que no entiendo es porque dices que tienes que hacer más de 30 consultas.
  #3 (permalink)  
Antiguo 30/06/2011, 14:45
 
Fecha de Ingreso: febrero-2011
Ubicación: Venezuela
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como reducir consultas a una base datos

Gracias alexg88 por responder, tengo mas de 30 categorías y hago una consulta en cada una para saber que tiendas están en dicha categoría
Ejemplo:
Agencia de Viajes(5)
Alta Costura(5)
Auto partes(1)
Bisutería(7)
Carteras(6)
Celulares(7)
Cines(4)
la cantidad de cada categoría la extraigo de la base datos como lo dije antes.
Código MySQL:
Ver original
  1. $sql="SELECT COUNT(*) FROM tiendas_lavictoria *WHERE tags LIKE '%Agencia de Viajes%'";
  2. $resultado=mysql_query($sql) OR die (mysql_error());
  3. // accedes al resultado .. sólo se entrega un registro con ese campo de nombre que se usó en el "alias" (as) en la sentencia SQL
  4. $total=mysql_result($resultado,0);

la consulta de arriba tengo que repetirla por todas las categorías que tengo,(mas de 30) porque consulto desde un solo campo llamado TAGS que tiene la tabla en donde están cada tienda

No se si me explique bien pero gracias de todas manera.
  #4 (permalink)  
Antiguo 30/06/2011, 14:56
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Como reducir consultas a una base datos

Saludos

No se si te entendi bien , pero podrias realizarlo ya sea con un OR o con un IN, por ejemplo:

Código MySQL:
Ver original
  1. SELECT COUNT(*) FROM tiendas_lavictoria WHERE tags LIKE '%Agencia1%' OR tags LIKE '%Agencia2%'......... GROUP BY campo
  2.  
  3. o
  4.  
  5. SELECT COUNT(*) FROM tiendas_lavictoria WHERE tags IN('Agencia1','Agencia2',.........) GROUP BY campo
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 30/06/2011, 15:40
 
Fecha de Ingreso: febrero-2011
Ubicación: Venezuela
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como reducir consultas a una base datos

Gracias por responder el dilema seria como asignarle a cada categoría su total, porque con esa consulta solo imprime un $total
  #6 (permalink)  
Antiguo 30/06/2011, 15:43
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Como reducir consultas a una base datos

Saludos

Dentro del select colocas el nombre de la columna categoria y realizas un GROUP BY al final de la consulta por ese misma columna
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 30/06/2011, 16:31
 
Fecha de Ingreso: febrero-2011
Ubicación: Venezuela
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como reducir consultas a una base datos

Nano_ no entiendo muy bien. el código es este
Código MySQL:
Ver original
  1. ///////////COMIENZA AQUI///////
  2.  
  3. $sql="SELECT COUNT(*) FROM tiendas_lavictoria  WHERE tags LIKE '%alta costura%'";
  4. $resultado=mysql_query($sql) or die (mysql_error());
  5. // accedes al resultado .. sólo se entrega un registro con ese campo de nombre que se usó en el "alias" (as) en la sentencia SQL
  6. $total=mysql_result($resultado,0);
  7. // y lo trabajas como quieras ...
  8. echo "<li><a href=\"Alta+Costura\" "; if(($id_cate=="Alta Costura") || ($busca=="Alta Costura")){echo"class='menu_activo'";} echo"><strong style='color:#F00;'>&rsaquo;</strong> Alta Costura($total)</a></li>\n";
asi es que obtengo el esto :
Código HTML:
Ver original
  1. <li><a href="Alta+Costura"><strong style="color:#F00;"></strong> Alta Costura(5)</li>
›Alta Costura(5)
lo que no se hacer es que variable debo ponerle a cada categoría para que sume dicho valor correspondiente a cada categoria

Muchisimas gracias de todas manera Nano_, alexg88 por sus sugerencias
Saludos

Etiquetas: Ninguno
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 20:17.