Wie finde ich die Gesamtzahl der Zeilen, die db_query()
für die SELECT
Anweisung zurückgegeben wurden, oder das Äquivalent von mysql_num_rows()
?
Ich benutze MySQL.
Wenn Sie sich die db_result()
Dokumentation zu Drupal 6 ansehen :
function db_result($result) {
if ($result && mysql_num_rows($result) > 0) {
// The mysql_fetch_row function has an optional second parameter $row
// but that can't be used for compatibility with Oracle, DB2, etc.
$array = mysql_fetch_row($result);
return $array[0];
}
return FALSE;
}
Ich habe auch gesehen, dass Sie dies in Drupal 6 tun können:
$num_rows = db_result(
db_query("SELECT COUNT(*) FROM {node} WHERE type = '%s'", $type->type)
);
Es sieht so aus, als könnten Sie einfach Folgendes tun:
// Execute your query.
$result = db_query($your_query);
// Use mysql_num_rows() on the result set.
$num_rows = mysql_num_rows($result);
db_query()
Gibt ein Objekt zurück und Sie können die Gesamtzahl der Zeilen mit überprüfen$res->num_rows
.quelle
Es hängt davon ab, ob Sie die Anzahl der Zeilen benötigen, bevor Sie die Ergebnismenge durchlaufen oder nicht.
Wenn Sie es zuvor benötigen, erstellen Sie im Allgemeinen eine
SELECT COUNT(*)
Abfrage mit denselben Argumenten wie Ihre erste Abfrage und verwenden siedb_result()
zum Abrufen.Wenn Sie es später benötigen, geben Sie einfach eine Variable ein, die Sie während Ihrer Schleife erhöhen:
quelle
Für Drupal 7 können Sie verwenden
quelle
rowCount()
nur für Abfragen gilt, die Zeilen wie INSERT / UPDATE / DELETE betreffen. Siehe die Diskussion unter drupal.org/node/1286238