Offset und Limit für die Paginierung berechnen
Wandeln Sie eine bei eins beginnende Seitennummer in die genauen Werte für eine offsetbasierte Abfrage um.
Im Browser ausführen – kostenlos
Geben Sie die gewünschte Seite, die maximale Anzahl von Datensätzen je Seite und die Gesamtzahl der verfügbaren Elemente an. Der Rechner liefert den bei null beginnenden Offset, das Abfragelimit und die Gesamtzahl der Seiten. Seitennummern oder Seitengrößen unter eins werden abgelehnt, sodass ungültige Datenbankabfragen und widersprüchliche Navigationssteuerelemente frühzeitig vermieden werden.
Überführen Sie eine Seitenangabe in Abfrageparameter
Benutzeroberflächen stellen die Paginierung meist mit verständlichen Seitennummern dar, während Datenbanken und APIs häufig einen bei null beginnenden Offset und ein Limit erwarten. Dieser Rechner verbindet beide Konventionen. Geben Sie eine Seitennummer ab eins, eine Seitengröße und die Gesamtzahl der Elemente in der vollständigen Sammlung ein. Der Offset ergibt sich aus der um eins verringerten Seitennummer, multipliziert mit der Seitengröße. Das Limit entspricht der Seitengröße. Die dritte Seite einer in Gruppen zu fünfundzwanzig dargestellten Sammlung beginnt beispielsweise nach den ersten fünfzig Elementen; ihr Offset beträgt daher fünfzig und ihr Limit fünfundzwanzig. Sie können diese Werte direkt an eine übliche SQL-Klausel mit LIMIT und OFFSET übergeben oder entsprechenden Parametern eines anderen Dienstes zuordnen. Das Ergebnis ist deterministisch und die zugrunde liegenden Datensätze werden weder geprüft noch abgerufen. Es erfolgt ausschließlich die für eine paginierte Anfrage erforderliche Berechnung. Dadurch eignet sich das Werkzeug für Backends, Skripte, Tests, Dokumentationen und Fehlersuchen.
Verstehen Sie Seitenzahl und Randfälle
Die Gesamtzahl der Seiten wird berechnet, indem die Gesamtzahl der Elemente durch die Seitengröße geteilt und das Ergebnis aufgerundet wird. Das Aufrunden ist entscheidend, weil auch eine nur teilweise gefüllte letzte Seite als Seite zählt. Werden einhunderteins Elemente in Gruppen zu fünfundzwanzig angezeigt, enthalten vier Seiten einhundert Elemente und eine fünfte das verbleibende Element. Bei null Elementen beträgt die Seitenzahl ebenfalls null, da keine Ergebnisseite vorhanden ist. Die gewünschte Seite wird nicht automatisch auf diese Anzahl begrenzt. Eine Anfrage nach Seite zehn kann somit einen gültigen Offset erzeugen, obwohl die Sammlung nur drei Seiten umfasst. Dieses Verhalten ist beabsichtigt: Der Rechner liefert die Paginierungsarithmetik, während Sie die Anwendungsrichtlinie festlegen. Ihre Anwendung kann die gewünschte Seite mit total_pages vergleichen und anschließend ein leeres Ergebnis zurückgeben, auf die letzte Seite umleiten oder eine Nicht-gefunden-Antwort anzeigen. Die Trennung von Berechnung und Richtlinie sorgt in Datenbanken, REST-Diensten und Oberflächen für vorhersehbare Ergebnisse.
Prüfen Sie Eingaben vor dem Aufbau der Abfrage
page und page_size müssen sichere ganze Zahlen größer oder gleich eins sein. Null oder ein negativer Wert würde die bei eins beginnende Seitenkonvention verletzen oder ein sinnloses Limit erzeugen; deshalb führt beides zu einem Fehler wegen ungültiger Eingabe. total_items muss eine sichere ganze Zahl größer oder gleich null sein, da eine Sammlung keine negative oder gebrochene Datensatzanzahl enthalten kann. Die Prüfung sicherer Ganzzahlen verhindert außerdem unbemerkte Genauigkeitsverluste in JavaScript, wenn sehr große Werte multipliziert werden. Überschreitet der berechnete Offset den sicheren Bereich, wird die Anfrage abgelehnt, anstatt eine ungenaue Zahl zurückzugeben. Dieselben Regeln schützen auch eine API-Grenze davor, dass fehlerhafte Parameter den Datenbankadapter erreichen. Die Fähigkeit stellt keine Netzwerkanfragen, speichert keine Daten und verwendet weder Zufalls- noch Zeitwerte. Gleiche Eingaben liefern stets gleiche Ausgaben. Jede automatisierte API-Anfrage kostet $0.002; im Browser können Sie Beispiele während der Entwicklung oder Fehleranalyse prüfen.
Anwendungsfälle
Eine Datenbankabfrage aufbauen
Wandeln Sie eine in der Oberfläche gewählte Seite in LIMIT- und OFFSET-Werte für SQL um.
Paginierungssteuerung anzeigen
Berechnen Sie die Seitenzahl zum Aktivieren, Deaktivieren oder Beschriften der Navigation.
API-Randfälle testen
Erzeugen Sie Sollwerte für leere Sammlungen, teilweise letzte Seiten und Seiten außerhalb der Ergebnisse.
Häufige Fragen
Beginnt die Seitennummer bei null oder eins?
Sie beginnt bei eins: Seite 1 hat den Offset 0 und Seite 2 beginnt nach einem vollständigen page_size.
Wie wird total_pages berechnet?
Der Rechner teilt total_items durch page_size und rundet auf, damit eine teilweise gefüllte letzte Seite mitzählt.
Was geschieht, wenn total_items null ist?
total_pages ist 0; offset und limit werden weiterhin aus der angeforderten Seite und Seitengröße berechnet.
Kann ich eine Seite nach total_pages anfordern?
Ja. Der Rechner liefert den mathematischen Offset; Ihre Anwendung entscheidet über ein leeres Ergebnis oder eine Ablehnung.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die Berechnung ist auch im Browser verfügbar.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/pagination-offset-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page":3,"page_size":25,"total_items":123}'const res = await fetch("https://api.kit.forhosting.com/dev/pagination-offset-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page": 3,
"page_size": 25,
"total_items": 123
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/pagination-offset-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page": 3,
"page_size": 25,
"total_items": 123
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/pagination-offset-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page":3,"page_size":25,"total_items":123}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page":3,"page_size":25,"total_items":123}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/pagination-offset-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"page": 3,
"page_size": 25,
"total_items": 123
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.pagination_offset_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |