Bueno he aquí mi aporte:
1- Recuperar todos los nombres de la tabla (que vamos a llamarle usuarios)
select usuarios.nombre from usuarios
2- Crear un array asociativo en php donde el indice sea el valor de los
registros recuperados y el valor a almacenar aumenta en 1 con cada
ocurrencia.
// $registros = ["juan", "jose", "antonio", "jose", "pedro"]; valor de
prueba de nombres de la BD
$arrayNombres = new array();
foreach ($registros as $row){
// Se comprueba que no haya ninguna ocurrencia de ese nombre
if ($arrayNombres[$row] == null) // Significa que el nombre no ha tenido
ocurrencia aún
$arrayNombres[$row] = 0; // Lo que significa que se le asigna un lugar
dentro del array. Este paso se hace para preever posibles errores al tratar
de sumar valores distintos de nulos con el nulo de php.
$arrayNombres[$row] ++; // Aumenta en uno por ocurrencia del nombre
}
Se debe obtener algo como esto:
$arrayNombres = ["juan" => 1, "jose" => 2, "antonio" => 1, "pedro" => 1];
3- Ya con el array asociativo lleno de todas las ocurrencias de los nombres
de la BD solo usamos cualquiera de los metodos de php para que ordene ese
array según el valor almacenado en los índices y listo.
Con un poquito más de complicación pudieras manipular todo esto a nivel de
arrays asociativos (u objetos) donde además del nombre puedas tener el id
del registro al cual este se asocia (que de seguro es el objetivo final).
Lo otro que te pudiera recomendar es leer la parte de las sentencias SQL
referentes a GROUP BY, que permite agrupar registros que tengan un mismo
valor en una determinada columna y luego procesar esa consulta. Te puedes
ayudar del phpmyadmin que es el genio en esa materia.
Mientras no aparezca la indicada, goza con la equivocada
Salu2
--------------------------------------------------
From: "Luis Daniel" <luisdan...@onei.cu>
Sent: Wednesday, July 29, 2015 8:36 AM
To: "Lista cubana de soporte técnico en Tecnologias Libres"
<gutl-l@jovenclub.cu>
Subject: [Gutl-l] seleccionar el string mas repetido en bd mysql+php
Hola a todos, tengo una bd en mysql con varios campo, pero uno, llamémosle
"nombre", se repite varias veces, necesito saber cual es el nombre "más
repetido" en esta base.
Probé con avg(), pero obviamente no funcionó, como esperaba, pues no son
números..
mi sistema es codeIgniter3+php+mysql...
agradecido cualquier consejo
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
--
Este mensaje le ha llegado mediante el servicio de correo electronico que
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso de usar
el servicio a tales fines y cumplir con las regulaciones establecidas
Infomed: http://www.sld.cu/
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l