2017-05-19 2 views
-2

Ich habe dieses Kommentar-System, wo ich anzeigen möchte, wie viele Benutzer kommentiert haben. Ich habe dies in meiner Datenbank:Anzahl Zeilen und wiederholte Daten überspringen

id | name | comment 
12   Alex   hello 
13   James  hi 
12   Alex   hey 

ist nämlich die Zahl der Menschen in der Datenbank nur 2. Ich dies durch Zählen die Folge tun konnte:

$q = "SELECT * FROM comments WHERE commentid = '$commentid'"; 
$res = mysqli_query($connection,$q); 
$number = mysqli_num_rows($res); 

Dies zu 3 führen würde, da Es sind 3 Kommentare in der Datenbank registriert.

Nun, wie kann ich den Code überspringen lassen, wenn ich die gleichen Daten lese, wie ich zählen möchte, wie viele Leute kommentiert - es beginnt zu zählen - Alex lesen und zählen - lesen Sie James und zählte es - lesen Sie Alex noch einmal da "Alex" bereits gezählt wurde, würde das überspringen - also wäre das Ergebnis nur 2. Kann ich das überhaupt machen? Vielen Dank!

+0

commenteid = '$ commenttid'? where ist die Spalte – Musaddique

+2

lesen Sie über 'Gruppe durch' und 'Zählung' – Jens

+1

Sehen Sie COUNT im Handbuch – Strawberry

Antwort

1

Verwenden COUNT(DISTINCT id)

SELECT COUNT(DISTINCT id) FROM comments WHERE commentid = '$commentid' 
1
SELECT count(DISTINCT name) FROM comments WHERE commentid = '$commentid'" 
1

Sie suchen die DISTINCT und COUNT Schlüsselwörter:

$sql = "SELECT COUNT(DISTINCT(id)) FROM comments WHERE commentid = $commentid" 

Diese Abfrage wird die Anzahl aller Benutzer zurückgeben, die mit dem spezifischen commentid kommentiert .

Verwandte Themen