Frage wegen COUNT()

BerlinerBaer

Mitglied
hi Community,

lange ist her, wo ich euch um eure Hilfe gebeten habe. Jetzt ist es mal wieder soweit. :(

Ich will mit einmal COUNT 2 Abfragen gleichzeitig machen.

Es geht dabei um ein Mailsscript, welches Browserbasierend ist. Also sowas wie von einem Forum, wo man von User zu User Nachichten versenden kann.

Soweit ist alles in Ordnung. Klappt alles wunderbar, aber jetzt, wo ich ausgeben will, wieviele ungelesene Nachrichten man hat, zeigt der mir dauerhaft "0" an, obwohl ich ungelesene Nachrichten habe. Hier der Code:

PHP:
<?php

    $abfrage = "SELECT COUNT(empfang) FROM ew_mails WHERE id = '".$userID."' ORDER BY status = ungelesen";
    $ergebnis = mysql_query($abfrage);
    $menge = mysql_fetch_row($ergebnis);
    $menge = $menge[0];

echo "Du hast $menge ungelesene Nachrichten.";

?>

Ich würde mich sehr über eure schnelle und hilfreiche Hilfe freuen.
 
Welche Werte hat „empfang“ denn? Die COUNT()-Funktion zählt nämlich nur Werte ungleich NULL.
 
Mach mal aus $menge = mysql_fetch_row($ergebnis);

das hier$menge = mysql_num_rows($ergebnis);


nun gibt dir echo $menge;die anzahl aus ;)
Also wird dashier "$menge = $menge[0];" auch nicht mehr grbaucht ;)


Grüße
 
Wenn COUNT verwendet wird, bringt dir num_rows aber nichts denn COUNT liefert nur eine Zeile mit dem Ergebnis zurück.

Also entweder

PHP:
$query = "SELECT id FROM meineTabelle;";
$result = mysql_query($query);
$count = mysql_num_rows($result);

oder
PHP:
$query = "SELECT count(id) FROM meineTabelle;";
$result = mysql_query($query);
$count = mysql_result($result,0);
 
Vielen lieben Danke @ Kahmoon & liquidbeats
Deine Lösung war genau richtig @ liquidbeats :)

@Gumbo: Die COUNT-Funktion zählt alles zusammen, was sich alles in einer Spalte befindet. Egal ob Zahlen oder sonstwas. Wenn ich es richtig von dir verstanden habe.

Also, danke für die schnelle und hilfreiche Hilfe.
 
Zuletzt bearbeitet:
@liquidbeats: SELECT COUNT(empfang) FROM ... liefert aber nur eine Zeile - und somit auch mysql_num_rows() nur eine "1"
 
Hi,

wie schon gesagt: select count(irgendwas) liefert nur eine Zeile.
D.h. entweder Du fragst alle gewünschten Datensätze ab und bekommst die Anzahl über mysql_num_rows() oder Du machst das folgendermaßen:

PHP:
<?php

    $abfrage = "SELECT COUNT(id) FROM ew_mails WHERE id = '".$userID."' AND status = 'ungelesen' ";
    $ergebnis = mysql_query($abfrage);
    $menge = mysql_result($ergebnis,0);

echo "Du hast $menge ungelesene Nachrichten.";

?>

LG
 
Wenn COUNT verwendet wird, bringt dir num_rows aber nichts denn COUNT liefert nur eine Zeile mit dem Ergebnis zurück.

Also entweder

PHP:
$query = "SELECT id FROM meineTabelle;";
$result = mysql_query($query);
$count = mysql_num_rows($result);
oder
PHP:
$query = "SELECT count(id) FROM meineTabelle;";
$result = mysql_query($query);
$count = mysql_result($result,0);


liest denn keiner meine Postings? *heul* :D
 
Zurück