dedlfix: Anzahl der Datensätze ausgeben

Beitrag lesen

Hi!

ich bin _völliger_ Datenbankanfänger und scheitere gerade an folgendem Ziel: Ich möchte die Anzahl von bestimmten Datensätzen zählen und das Ergebnis dieser Zählung als Zahl ausgeben. Also nicht die Datensätze selbst, sondern nur deren Anzahl.
  $statement='SELECT id FROM 11\_dbtest';
  $result=$db->query( $statement);
  $number=$result->num_rows;

Dann nimm COUNT(*) ins SQL-Statement statt mysqli::num_rows. Damit num_rows funktionieren kann, müssen erst alle Datensätzt zum Client transportiert werden. Ein COUNT() liefert hingegen immer nur einen einzigen Wert.

include('db_disconnect.php');

Ein Disconnect ist nicht unbedingt erforderlich. Lediglich wenn das Script nach der Abfrage noch länger läuft und/oder der Speicherplatz freigegeben werden muss muss man sich die "Mühe" des Disconnect machen.

Wenn ich jetzt nur bestimmte Datensätze zählen mlöhcte, in dem Fall alle, wo der Vorname "Hans" ist, habe ich es so versucht:
  $statement='SELECT vorname FROM 11\_dbtest WHERE vorname=Hans';

Die Backticks sind Quotierzeichen für Identifizierer (Spaltennamen etc.) Strings werden mit '' oder "" eingefasst.

$result=$db->query( $statement);
  $number=$result->num_rows;
Da kommt beim Aufruf der Seite aber die Notiz "Notice: Trying to get property of non-object in [...] on line [...]" und es kommt nicht zur Ausgabe einer ANzahl.

Dann steht wohl in $result etwas anderes als du erwartet hast. Prüf das mit var_dump(). Anschließend schau ins PHP-Handbuch, wann der angezeigte Wert zurückgegeben wird und erweitere dein Script um eine Fehlerbehandlung. Es ist nicht sinnvoll nur vom Gutfall auszugehen, Fehler gibt es nicht nur in Form von selbst fabrizierten Syntaxfehlern.

Lo!