PHP Conference Japan 2024

yaz_range

(PHP 4 >= 4.0.1,PECL yaz >= 0.9.0)

yaz_range 指定要檢索的記錄範圍

說明

yaz_range(resource $id, int $start, int $number): void

指定要檢索的記錄範圍。

此函式應在 yaz_search()yaz_present() 之前呼叫。

參數

id

yaz_connect() 返回的連線資源。

start

指定要檢索的第一個記錄的位置。記錄編號從 1 到 yaz_hits()

number

指定要檢索的記錄數。

傳回值

不傳回任何值。

新增註解

使用者貢獻的註解 1 則註解

0
andrew dot isherwood at ptfs-europe dot com
9 年前
請注意,yaz_range 的行為可能與您想像的不同。例如,它不會根據您提供的 "start" 和 "number" 參數傳回結果集。

引用此討論串
http://lists.indexdata.dk/pipermail/yazlist/2006-November/001752.html

"一般來說,您給 yaz_record() 的記錄偏移量是結果集中的偏移量,而不是 yaz_range() 識別的任何子集中的偏移量。這至關重要:yaz_range() 函式嚴格來說是為了幫助您編寫更優化的客戶端程式碼;您不需要呼叫它。

換句話說,如果您想顯示集合中記錄編號 10 到 20 的記錄,您應該從 10 到 20 迴圈,並為每個記錄呼叫 yaz_record()。底層程式碼將根據需要按需檢索記錄。

然而,如果您在呼叫 yaz_wait() 之前呼叫 yaz_range(),底層程式碼將優化其行為。它會要求
伺服器傳回記錄以及搜尋結果,或提交單個 present 請求來獲取記錄(如果您要求的記錄不多)。這在快速破解中沒有區別,但如果您是為多個使用者或大量流量設計,則可能會產生顯著差異。無論您是否先呼叫 yaz_range(),您在 yaz_record() 上進行的迴圈都將相同。"
To Top