Hilfe bei einigen Expliziten MYSQL Befehlen

SantaCruze

Erfahrenes Mitglied
Ich wollte nun aus einer Tabelle die anzahl der User zählen lassen, das ganze sieht so aus :


PHP:
$sql = "SELECT COUNT(user) FROM users" ;
$result = mysql_query($sql);
while($row=mysql_num_rows($result))


Allerdings liefert er mir nur Resource id #4 aus. Mir geht es darum, die Anzahl aller vorhandenen User bzw. halt der Zeilen auszugeben als eine Zahl.

2. Wie müsste der SQL Befehl aussehen wenn ich den User finden will, der die höchste Punktzahl hat, aber halt nur die Punktzahl selbst ausgeben will ?

3. Wenn ich alle Werte einer bestimmten Spalte zusammenzählen will, und dann als Gesamtzahl ausgeben will? Bsp : User 1 hat 500Dm , User 2 hat 1000Dm, Ausgabe soll aber berechnen wieviel Geld gesamt im Umlauf ist von allen usern zusammen.
 
1. Ob das mit COUNT in SQL funktioniert weiß ich nicht. Ich würde es einfach wie folgt machen, wenn ich die Useranzahl haben möchte:
PHP:
$results = mysql_query("SELECT user FROM users");
$userAnzahl = mysql_num_rows($result);

2. User mit der höchsten Punktzahl:
PHP:
$result = mysql_query("SELECT user FROM users ORDER BY hoechstePunktzahl DESC LIMIT 1");
//Bemerkung: DESC = absteigend | ASC = aufsteigend

/*und hier ganz einfach den User in einen String oder Array oder was du möchtest packen ;) falls du nicht weißt wie, siehe unten*/
Eventuell: Schau dir mal mysql_fetch_array() oder mysql_fetch_object() an ;)

Zu 3.
einfach alle Zahl-Einträge der Spalte in einen Array packen und mit array_sum() alle Array-Elemente addieren ;) fertig
 
Hallo,

der count(user) sollte funktionieren. Die Syntgax findest du hier:
http://dev.mysql.com/doc/refman/5.1/en/select.html


zu 2. Wie müsste der SQL Befehl aussehen wenn ich den User finden will, der die höchste Punktzahl hat, aber halt nur die Punktzahl selbst ausgeben will ?

Im Standard SQL könntest du hier mit der Aggregatfunktion max arbeiten. MySql scheint das nicht im Sprachumfang zu haben. Siehe Antwort von Sturmrider



3. Wenn ich alle Werte einer bestimmten Spalte zusammenzählen will, und dann als Gesamtzahl ausgeben will? Bsp : User 1 hat 500Dm , User 2 hat 1000Dm, Ausgabe soll aber berechnen wieviel Geld gesamt im Umlauf ist von allen usern zusammen

select sum(dein Datenbankfeld) from Datenbankname;
 
@BLOEBAUM
*grins* danke auch schonmal von mir an dieser Stelle :rolleyes: man lernt nie aus!
Noch einmal kurz zu 1.:
Du hast mit COUNT() in SQL bereits alle Werte ermittelt bzw. die Anzahl. Wenn du nun aber noch mysql_num_rows() verwendest zählst du nur den Wert, den du durch count schon ermittelt hast, bringt also nichts bzw. würde genau in z.B. nem Array genau 2Werte ergeben.
Nämlich: [0] => 143 und [count(user)] => 143 (wobei 143 natürlich eine fiktive Zahl ist)

Warum du den Fehler Resource id #4 bekommst ist ganz klar, da du den MySQL-Datensatz noch nicht weiter "verarbeitet" (darf man das so sagen?) hast. Du musst sie, wie ich bereits oben geschrieben habe in Form eines Arrays oder Object... verarbeiten und kannst sie dann auch auslesen.
Übrigens, die Variable $row solltest du in diesem Zusammenhang vorher noch definieren (z.B. mit dem Wert "0")
 
Zuletzt bearbeitet:
Zurück