Start · Sprachen · PHP · Referenz · yaz_hits

yaz_hits

Funktion

Gibt die Anzahl der Treffer der zuletzt durchgeführten Suche auf einer YAZ-Verbindung zurück.

seit PHP 4.0.1 Kategorie: misc

Signatur

yaz_hits(resource $id): int

Beschreibung

yaz_hits() liefert die Trefferanzahl, die der Z39.50-Server für die zuletzt ausgeführte Suche auf der angegebenen Verbindung zurückgemeldet hat. Diese Zahl entspricht der Gesamtmenge der gefundenen Datensätze, unabhängig davon, wie viele davon tatsächlich abgerufen wurden.

Die Funktion wird typischerweise nach einem Aufruf von yaz_wait() und yaz_error() verwendet, um festzustellen, ob und wie viele Ergebnisse vorhanden sind, bevor einzelne Datensätze mit yaz_record() abgerufen werden.

Z39.50 ist ein Netzwerkprotokoll zum Suchen und Abrufen von Informationen, das häufig in Bibliothekssystemen eingesetzt wird. Die PHP-YAZ-Erweiterung ermöglicht die Kommunikation mit solchen Servern. Hinweis: Die YAZ-Erweiterung ist veraltet und wird in modernen PHP-Versionen nicht mehr aktiv gepflegt.

Parameter

Name Typ Default Beschreibung
$id Pflicht resource Eine YAZ-Verbindungsressource, die zuvor mit yaz_connect() erstellt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt die Anzahl der Treffer der letzten Suche auf der angegebenen Verbindung als ganzzahligen Wert zurück. Wurde noch keine Suche durchgeführt oder schlug die Suche fehl, wird 0 zurückgegeben.

Beispiele

Trefferanzahl nach einer Z39.50-Suche ermitteln

<?php
// Verbindung zu einem Z39.50-Server herstellen
$id = yaz_connect('z3950.loc.gov:7090/Voyager');

if (!$id) {
    die('Verbindung fehlgeschlagen');
}

// Suche initiieren
yaz_syntax($id, 'usmarc');
yaz_search($id, 'rpn', '@attr 1=4 "PHP"');

// Alle ausstehenden Anfragen ausführen
yaz_wait();

// Fehlerprüfung
$error = yaz_error($id);
if ($error) {
    echo 'Fehler: ' . $error;
} else {
    // Trefferanzahl abrufen
    $hits = yaz_hits($id);
    echo 'Anzahl gefundener Datensätze: ' . $hits;
}
?>
Anzahl gefundener Datensätze: 42

Paginierte Datensatz-Abfrage basierend auf Trefferanzahl

<?php
$id = yaz_connect('z3950.loc.gov:7090/Voyager');
yaz_syntax($id, 'usmarc');
yaz_search($id, 'rpn', '@attr 1=4 "Bibliothek"');
yaz_wait();

if (!yaz_error($id)) {
    $hits = yaz_hits($id);
    echo 'Gefundene Datensätze: ' . $hits . PHP_EOL;

    // Maximal 10 Datensätze abrufen
    $limit = min($hits, 10);
    for ($i = 1; $i <= $limit; $i++) {
        $record = yaz_record($id, $i, 'string');
        if ($record) {
            echo 'Datensatz ' . $i . ': ' . $record . PHP_EOL;
        }
    }
} else {
    echo 'Suchfehler: ' . yaz_error($id);
}
?>
Gefundene Datensätze: 10 Datensatz 1: ... Datensatz 2: ...

// Wichtig · Fallstricke

Veraltete Erweiterung: Die YAZ-PECL-Erweiterung wird nicht mehr aktiv weiterentwickelt und ist in modernen PHP-Umgebungen (PHP 7+) kaum noch verfügbar. Für neue Projekte sollten alternative Z39.50-Bibliotheken oder REST-basierte Schnittstellen verwendet werden.

Die von yaz_hits() zurückgegebene Zahl ist die vom Server gemeldete Trefferzahl. Server können diese Zahl schätzen oder begrenzen – sie entspricht nicht zwingend der tatsächlichen Anzahl abrufbarer Datensätze.

yaz_hits() darf erst nach einem abgeschlossenen yaz_wait()-Aufruf verwendet werden, da die Suche andernfalls noch nicht vollständig ausgeführt wurde.