it-swarm.com.de

Wie erhalte ich die Anzahl der aus der Abfrage ausgewählten Zeilen?

In meinem benutzerdefinierten Modul für Drupal 8) verwende ich den folgenden Code.

$query = $this->connection->select('node_field_data', 'nf_data');
$result = $query->execute();

Ich kann die Anzahl der Zeilen ermitteln, die über $result.

foreach ($result as $row) {
  $num++;
}

Gibt es eine Möglichkeit, die Anzahl der Zeilen mit einer Funktions-/Klassenmethode zu ermitteln?

1
Diana
$query = $this->connection->select('node_field_data', 'nf_data');
$result = $query->execute();
$records = $result->fetchAll();
$num_results = count($records);

Dies lässt Sie mit $records ist ein Array aller Datensätze und $num_results ist die Anzahl dieses Arrays.

Siehe: https://www.drupal.org/docs/8/api/database-api/result-sets

Außerdem: Dokumentation auswählen und StatementInterface (der Rückgabewert von $ query-> execute) Dokumentation

Vielleicht möchten Sie Entitätsabfragen verwenden, obwohl ich nicht sicher bin, was Ihr Ziel ist.

4
sonfd

Verwenden Sie $ query-> countQuery () -> execute () -> fetchField (); Das geht schnell.

Siehe Detailbeispiel.

$number = $this->connection->select(static::TABLE_NAME, 'f')
    ->condition('event', $name)
    ->condition('identifier', $identifier)
    ->condition('timestamp', REQUEST_TIME - $window, '>')
    ->countQuery()
    ->execute()
    ->fetchField();
6
Alex Kuzava