Me gustaron tus opciones, voy a probar el group_by primero a ver que
sale.. Gracias!
On 29/07/15 17:34, Ernesto Tur Laurencio wrote:
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
______________________________________________________________________
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