Foros del Web » Programando para Internet » PHP »

contar cuantas veces se repite cadena de caracteres

Estas en el tema de contar cuantas veces se repite cadena de caracteres en el foro de PHP en Foros del Web. Hola buenas a todos primeramente agradecer por la ayuda prestada tengo un sitio con un formulario de gustos en general desde música hasta cine etc.. ...
  #1 (permalink)  
Antiguo 07/10/2011, 16:35
Avatar de panker  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
contar cuantas veces se repite cadena de caracteres

Hola buenas a todos primeramente agradecer por la ayuda prestada

tengo un sitio con un formulario de gustos en general desde música hasta cine etc..
necesito hacer una lista de las palabras mas ingresadas debo hacerlo en php

para rellenar la BD los usuarios llenan 15 formas cada forma es para cada tabla ósea que hay 15 tablas para esto field_c1_lista_value, field_c2_lista_value, field_c3_lista_value, field_c4_lista_value,... hasta llegar a field_c15_lista_value

quiero que me aparezca así mas o menos:
the ramones (5)
maria bonita (4)
Los Fabulosos Cadilacs (3)
caimanes (3)


la base del sitio esta algo asi
-----------------------------------------
field_c1_lista_value |
-----------------------------------------
| vid | nid | field_l1_lista_value |
| 1 | 1 | Los Fabulosos Cadilacs |
| 2 | 2 | caifanes |
| 3 | 3 | the ramones |
| 4 | 4 | null |
| 5 | 5 | maria bonita |
| 6 | 6 | null |
| 7 | 7 | null |

----------------------------------------
field_c2_lista_value |
----------------------------------------
| vid | nid | field_l2_lista_value |
| 1 | 1 | Los Fabulosos Cadil |
| 2 | 2 | caifanes |
| 3 | 3 | the ramones |
| 4 | 4 | Los Fabulosos Cadilacs |
| 5 | 5 | maria bonita |
| 6 | 6 | null |
| 7 | 7 | maria bonita |
-----------------------------------
field_c3_lista_value |
-----------------------------------
| vid | nid | field_l3_lista_value |
| 1 | 1 | the ramones |
| 2 | 2 | caifanes |
| 3 | 3 | the ramones |
| 4 | 4 | null |
| 5 | 5 | maria bonita |
| 6 | 6 | the ramones |
| 7 | 7 | nulo |
-----------------------------------------
no se como lograrlo estube leyendo sobre count(*) de mysql pero no me queda, y quiero saber como podré utilizar menos recursos

muchas gracias de antemano agradeceré su ayuda
  #2 (permalink)  
Antiguo 07/10/2011, 18:42
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: contar cuantas veces se repite cadena de caracteres

Esto es uso de MySQL, nada más. La estructura no es buena para hacer lo que pides, entre otras cosas porque la búsqueda es por texto bruto y si alguien escribe alguna pequeña variación de lo mismo va a haber problemas, pero bueno, con lo que tienes el count que buscas sería más o menos así, si no me equivoco:

Código:
SELECT c1.field_l1_lista_value, COUNT(*) 
FROM field_c1_lista_value c1
INNER JOIN field_c2_lista_value c2 ON c1.field_l1_lista_value = c2.field_l2_lista_value
INNER JOIN field_c3_lista_value c3 ON c1.field_l1_lista_value = c3.field_l3_lista_value
GROUP BY c1.field_l1_lista_value
Esto ampliado a todas las tablas que tienes. Yo revisaría la estructura muy seriamente, porque trabajar con eso va a ser horroroso.
  #3 (permalink)  
Antiguo 20/10/2011, 14:18
Avatar de panker  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: contar cuantas veces se repite cadena de caracteres

muchas gracias

lo pruebe pero solo me muestra 3 resusltados y no con laz veces repetidas ¿por que tiene c1 c2 y c3?

es como un alias AS?

gracias

Última edición por panker; 20/10/2011 a las 14:39 Razón: mas detalles
  #4 (permalink)  
Antiguo 20/10/2011, 17:32
Avatar de panker  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: contar cuantas veces se repite cadena de caracteres

ya que si me queda y doy por resuelto este tema ufff me ha hecho llorar casi casi

pero gracias a la ayuda de todos voy concluyendolo

con esta consulta me sale bien como lo quiero solo que no se como ponerlo en php para que me lo muestre los rows en una tabla y otro detallito esque los null me los pone hasta arriba aunque eso ya no me importa tanto

gracias por su ayuda y opiniones

Código MySQL:
Ver original
  1. SELECT `content_field_l1_lista`.`field_l1_lista_value`
  2. FROM content_field_l1_lista
  3. SELECT `content_field_l2_lista`.`field_l2_lista_value`
  4. FROM content_field_l2_lista
  5. SELECT `content_field_l3_lista`.`field_l3_lista_value`
  6. FROM content_field_l3_lista;
  7.  
  8. SELECT COUNT( * ) , `final`.`field_l1_lista_value`
  9. FROM final
  10. GROUP BY `final`.`field_l1_lista_value`
  11. LIMIT 0 , 30;

Etiquetas: repeat, strings
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:55.