Resultados de SQL en la matriz php
Pregunta
Me gustaría crear una matriz (en php) a partir de resultados sql como este: Tenemos la sql-table " Posts " que almacena el Nombre y el Mensaje . Ejemplo:
Nombre | Mensaje
John | Hola
Nick | buen día
George | Adios
John | donde
Lo que quiero es mostrar los nombres de las personas que han publicado un mensaje pero que no muestran los mismos nombres más de 1 vez . Entonces la salida sería John, Nick, George. (De estos registros, vemos que John ha publicado 2 mensajes, pero en la salida final, solo vemos una vez su nombre).
¿Es esto de alguna manera posible? Gracias de antemano.
Solución
Prueba:
$sql = <<<END
SELECT DISTINCT Name FROM Posts
END;
$query = mysql_query($sql) or die($sql . ' - ' . mysql_error());
$names = array();
while ($row = mysql_fetch_array($query)) {
$names[] = $row[0];
}
print_r($names);
Otros consejos
SELECCIONAR DISTINTO
Podría ejecutar una consulta SQL para seleccionar los nombres distintos y nada más:
SELECT DISTINCT Name FROM Posts;
Esto le dará un conjunto de resultados que consta de valores de Nombres distintos, y cada valor único solo se devolverá una vez en el conjunto.
para obtener el recuento que necesitará agregar usando el grupo por:
Aquí está el SQL si no es contrario al grupo BY
select count(name) as N, name from posts group by name ;
Personas que tienen más de 1 publicación
select count(name) as N, name from posts group by name having N > 1 ;