Start · Sprachen · PHP · Referenz · odbc_result_all

odbc_result_all

Funktion

Gibt alle Zeilen eines ODBC-Abfrageergebnisses als fertige HTML-Tabelle aus.

seit PHP 4.0.0 Kategorie: db

Signatur

odbc_result_all(resource $statement, string $format = ""): int|false

Beschreibung

odbc_result_all() liest sämtliche Datensätze eines ODBC-Ergebnisses und gibt sie direkt als vollständige HTML-Tabelle auf die Standardausgabe aus. Die erste Zeile der Tabelle enthält automatisch die Spaltennamen als Tabellenköpfe (<th>), alle weiteren Zeilen enthalten die eigentlichen Daten.

Der optionale Parameter $format erlaubt es, eigene HTML-Attribute für das <table>-Tag zu übergeben – etwa "border=1 class='mytable'". Auf diese Weise kann die Tabelle einfach gestaltet werden, ohne den generierten HTML-Code manuell aufbauen zu müssen.

Die Funktion eignet sich vor allem für schnelle Prototypen, Administrationstools oder Debug-Ausgaben, bei denen eine schöne Visualisierung der Abfrageergebnisse ohne viel Aufwand gewünscht ist. Für produktive Anwendungen mit individuellem Layout empfiehlt es sich, die Daten mit odbc_fetch_row() und odbc_result() manuell zu verarbeiten.

Nach dem Aufruf ist der interne Zeiger des Ergebnis-Sets erschöpft. Ein erneuter Aufruf liefert keine Zeilen mehr, sofern der Cursor nicht zurückgesetzt werden kann.

Parameter

Name Typ Default Beschreibung
$statement Pflicht resource Ein gültiges ODBC-Ergebnis-Handle, das von odbc_exec() oder odbc_execute() zurückgegeben wurde.
$format string Optionale zusätzliche HTML-Attribute, die dem öffnenden <table>-Tag hinzugefügt werden, z. B. "border=1 width='100%'".

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Anzahl der ausgegebenen Zeilen als int zurück, oder false bei einem Fehler (z. B. ungültiges Handle).

Beispiele

Einfache Ausgabe einer ODBC-Abfrage als HTML-Tabelle

<?php
// Verbindung zur ODBC-Datenquelle aufbauen
$conn = odbc_connect('MeineDSN', 'benutzer', 'passwort');

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . odbc_errormsg());
}

// SQL-Abfrage ausführen
$result = odbc_exec($conn, 'SELECT id, name, email FROM benutzer');

if (!$result) {
    die('Abfrage fehlgeschlagen: ' . odbc_errormsg($conn));
}

// Alle Ergebnisse direkt als HTML-Tabelle ausgeben
$anzahl = odbc_result_all($result, 'border="1" cellpadding="4" style="border-collapse:collapse"');

echo "<p>Insgesamt $anzahl Datensätze ausgegeben.</p>";

odbc_free_result($result);
odbc_close($conn);
?>
<table border="1" cellpadding="4" style="border-collapse:collapse"><tr><th>id</th><th>name</th><th>email</th></tr><tr><td>1</td><td>Max Mustermann</td><td>max@example.com</td></tr>...</table> <p>Insgesamt 3 Datensätze ausgegeben.</p>

Debug-Ausgabe ohne Formatierung

<?php
// Schnelle Debug-Ausgabe ohne besondere Tabellenformatierung
$conn = odbc_connect('TestDSN', 'admin', 'geheim');
$result = odbc_exec($conn, 'SELECT * FROM produkte WHERE preis > 100');

echo '<h2>Produkte über 100 EUR</h2>';
$zeilen = odbc_result_all($result);
echo "<p>$zeilen Produkte gefunden.</p>";

odbc_free_result($result);
odbc_close($conn);
?>
<table><tr><th>id</th><th>bezeichnung</th><th>preis</th></tr><tr><td>5</td><td>Laptop</td><td>999.00</td></tr></table> <p>1 Produkte gefunden.</p>

// Wichtig · Fallstricke

Sicherheitshinweis: odbc_result_all() gibt Datenbankwerte ungefiltert als HTML aus. Enthält die Datenbank benutzergenerierte Inhalte, können XSS-Angriffe möglich sein. Die Funktion sollte daher niemals für die Ausgabe von nicht vertrauenswürdigen Daten in produktiven Webanwendungen eingesetzt werden.

Deprecated / Veraltet: Die ODBC-Extension und speziell Hilfsfunktionen wie odbc_result_all() gelten als veraltet und werden in modernen PHP-Projekten kaum noch eingesetzt. Für neue Projekte empfiehlt sich PDO mit dem ODBC-Treiber (PDO_ODBC).

Da die Funktion den HTML-Code direkt ausgibt (und nicht zurückgibt), lässt sich die Ausgabe nur mit Output-Buffering (ob_start()) abfangen und weiterverarbeiten.