Fängt Coutnt automatisch bei 1 an?

yardimcim

Mitglied
Ich bin wieder da :) Habe mich einbisschen ausgeruht....
Vlt. könnt ihr euch noch errinern von meine alten Einträgen. Ich hatte eine Tabelle mit bucher, dadrin waren Bewertungen....
Jezt möchte ich z.B. anzeigen lassen wievile Bewertungen man hat. Das mache ich so:
Code:
 $sql_string = "SELECT a.*,b.* FROM bucher a LEFT JOIN provision b ON a.Id = b.Id WHERE a.Id = ".$_SESSION['user_id'];
                                
$sql_query = mysql_query($sql_string);
$sql_count = mysql_num_rows($sql_query);

echo "Insgesamt haben Sie ".$sql_count." Bewertungen" ;

Da ich schon verschiedene Bewertung hatte, habe ich es davor nicht gemerkt. Wenn ich z.b. gar keine Bewrtung habe steht immer: SIe haben 1 Bewertung :rolleyes: Warum ist das so :S
 
Du filterst ja auch nicht auf die Zahl der Bewertungen sondern nur auf die "user_id" und nimmst aks Anzahl dann die Datensätze die gefunden werden (da es die "user_id" immer einmal gibt, kommt als Ergebnis auch immer 1 raus).

Schau dir mal die COUNT-Funktion an, damit kannst du ermitteln wieviele Bewertungen pro User abgegeben wurden.

PHP:
$sql_string = "SELECT COUNT(bewertung) FROM bucher WHERE Id = " .$_SESSION['user_id'] ." GROUP BY Id";

So in etwa müsste es wohl aussehen.
 
Oder du machst aus deinem LEFT JOIN ein INNER JOIN

Wobei der COUNT() von tombe schöner ist, wenn du keine weiteren Daten aus dem SQL brauchst
 
Zurück