Sql Ergebnisse in PHP-Array
Frage
Ich möchte ein Array erstellen (in PHP) von SQL-Ergebnisse wie folgt aus: Wir haben die SQL-Tabelle "Beiträge", das speichert den Namen und Nachricht .Beispiel:
Name | Nachricht
John | Hallo
Nick | schöner Tag
George | Auf Wiedersehen
John | wobei
Was ich will, ist auf Ausgabe der Namen von Menschen, die eine Nachricht geschrieben haben, aber nicht die gleichen Namen mehr als 1 Mal Anzeige . So würde der Ausgang John, Nick, George sein. (Aus diesen Aufzeichnungen, sehen wir, dass John 2 Beiträge geschrieben hat, aber in der letzten Ausgabe, sehen wir nur ein einziges Mal seinen Namen).
Ist das irgendwie möglich? Vielen Dank im Voraus.
Lösung
Versuchen:
$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);
Andere Tipps
SELECT DISTINCT
Sie können eine SQL-Abfrage ausführen, um nur die eindeutigen Namen zu wählen, und nichts anderes:
SELECT DISTINCT Name FROM Posts;
Dies gibt Ihnen eine Ergebnismenge, bestehend aus verschieden Namen Werten, wobei jeder eindeutigen Wert nur 1 Mal in der zurückgegeben wird.
die Zählung bekommen Sie müssen mithilfe von Gruppe aggregieren:
SELECT
NAME
, COUNT(*) as Posts
FROM
Posts
GROUP BY
NAME
Hier ist die SQL, wenn Sie zu einer Gruppe BY
nicht abgeneigt sindselect count(name) as N, name from posts group by name ;
Menschen mehr als 1 Post mit
select count(name) as N, name from posts group by name having N > 1 ;