[PHP] Array - Werte zählen ... count()

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Berndte
Mitglied
Beiträge: 491
Registriert: 13.07.2004 21:04
Wohnort: Oyten
Kontaktdaten:

[PHP] Array - Werte zählen ... count()

Beitrag von Berndte »

Hallo,

ich bin mal wieder ein wenig am rumfrickeln und stehe auf dem Schlauch.
Aber ihr könnt mir sicher helfen.

Ich möchte gern wissen wieviel Datensätze(?) in einem Array liegen.
Der Sinn besteht darin, dass ich für meine Haftnotiz vom phpBB eine Seite gebastelt habe, welche jeden User auswirft, welcher die Haftnotiz als gelesen markiert hat (In der Datenbank steht bei jedem User in der Spalte "board_note" dann eine "1").

Seht selber: http://forum.opel4x4.de/phpBB/note_gelesen.php

Ich rufe aber aus der Datenbank auch schon nur alle Einträge mit board_note = 1 ab.
Die Auflistung mittels Schleife funktioniert auch wie man sieht.

Hier aber erstmal als TXT: http://forum.opel4x4.de/phpBB/note_gelesen.txt

Aber warum kann ich jetzt nicht mit diesem Teil einen Wert bekommen welcher (zur Zeit) 84 ist?

Code: Alles auswählen

$username = $row['username'];
$gelesen_users = count($username);
Es muss doch einfach nur gezählt werden, wieviele Einträge "['username']" enthält, oder?

Vielleicht könnt ihr mir ja mal auf die Sprünge helfen.
Danke schonmal....

Gruss Bernd

PS: auf eine erneute Datenbankabfrage habe ich verzichtet... ich habe ja schon den Wert... aber wie komme ich da dran???
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

hilft dir der Thread auf die Sprünge?
http://www.phpbb.de/viewtopic.php?t=139995
kein Support per PN
Berndte
Mitglied
Beiträge: 491
Registriert: 13.07.2004 21:04
Wohnort: Oyten
Kontaktdaten:

Beitrag von Berndte »

Hallo,

naja, aber das gibt ja dann alle Namen aus, wenn ich diese Zeilen einfüge:

Code: Alles auswählen

while ($row = mysql_fetch_assoc($result)) {
   echo $row["username"];
}
Ich möchte aber gern nur die eigentlich Anzahl haben.

Gruss Bernd
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Code: Alles auswählen

SELECT count(*) FROM tabelle WHERE bedingung
KB:knigge
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Code: Alles auswählen

$gelesen_users = $db->sql_numrows($result);

if ( $row = $db->sql_fetchrow($result) )
Geht auch :/ easy
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Ist aber unnötige Performanceverschwendung, wenn man nur die Anzahl braucht.
KB:knigge
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

War auch nur der Vollständigkeit halber. :D

Sinn macht z.B. das

Code: Alles auswählen

if ($gelesen_users > 0) {
	while($row = $db->sql_fetchrow($result))
	{
.
.
.	
	}
} else {
	echo "nada";
}
Berndte
Mitglied
Beiträge: 491
Registriert: 13.07.2004 21:04
Wohnort: Oyten
Kontaktdaten:

Beitrag von Berndte »

easygo hat geschrieben:

Code: Alles auswählen

$gelesen_users = $db->sql_numrows($result);

if ( $row = $db->sql_fetchrow($result) )
Geht auch :/ easy
Danke, das war´s!
sql_numrows hat mir also gefehlt ... ich kann dazu aber keine Referenz finden!?
Pyramide hat geschrieben:Ist aber unnötige Performanceverschwendung, wenn man nur die Anzahl braucht.
Wirklich? ... wäre eine extra Datenbankabfrage nicht aufwändiger?

****************

Aber warum wird ein 1 User zuviel gezählt? In der Auflistung sieht man es. Ich habe mal die Dateien aktualisiert:
http://forum.opel4x4.de/phpBB/note_gelesen.php
http://forum.opel4x4.de/phpBB/note_gelesen.txt

Ich könnte ja mit " $gelesen_users = $gelesen_users -1; " einfach einen abziehen, aber man will ja die Gründe kennen und lernen ;)

Die noch fehlende Prozentrechung bekomm ich aber selber hin :D
Gruss Bernd
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Berndte hat geschrieben:Aber warum wird ein 1 User zuviel gezählt? In der Auflistung sieht man es.
Wegen dem Anonymen vielleicht? Versuchs mal so

Code: Alles auswählen

$sql = "SELECT username, user_id, board_note 
	FROM " . USERS_TABLE . "
	WHERE board_note NOT LIKE '1'
	AND user_id <> " . ANONYMOUS . "
	ORDER BY user_id";
und dann noch was (weniger tragisches)

Wozu php zwischendrin x mal beenden und neu starten? :/ easy
Zuletzt geändert von easygo am 13.01.2007 00:18, insgesamt 1-mal geändert.
Berndte
Mitglied
Beiträge: 491
Registriert: 13.07.2004 21:04
Wohnort: Oyten
Kontaktdaten:

Beitrag von Berndte »

Hallo nochmal,

du hast Recht, standardmässig steht bei Gästen eine "1".
Ich nehme deshalb der Einfachheit halber "-1" und mach mir nen Kommentar.

PHP habe ich eher unabsichtlich mehrmals (3?) geöffnet und geschlossen. War die Vorlage für eigene Seite im phpBB ... da war das so drin (meine ich).
Macht doch aber nichts, oder?
Antworten

Zurück zu „Coding & Technik“