我知道mysqli_data_seek
讓我們移動所需的偏移量,但是如何在特定條件滿足時使用它來向後退一步?我正在使用while-loop
作爲條件,因此您可以得出結論,當條件滿足時,指針將位於下一條記錄上。 我怎樣才能把它拉回一步?如何在mysqli_query結果對象中返回一條記錄
-3
A
回答
0
試試這個:
$i = 0;
while($row = mysqli_fetch_row($result)){
if($i != 0 && condition){
mysqli_data_seek($result, $i-1);
}
$i++;
}
1
也不是那麼難,因爲它看起來。
- 計數提取的偏移量。
- 當您達到條件時,請轉至
offset - 1
,如果需要,請使用continue
重複循環。
例子:
$offset = 0;
while($row = $result->fetch_assoc()){
if($condition && $offset){
$result->data_seek(--$offset);
continue;
}
$offset++;
// actions
}
而且,我會引用我的評論:
有沒有這種內置的方法(即
prev()
,next()
,current()
或rewind()
,就像iterators
一樣)。但是,您可以擴展mysqli_result
類或創建一個 decorator, 可以做到這一點。
相關問題
- 1. 添加一條記錄在內存中返回結果
- 2. 在Lightswitch中記錄一條不返回結果的查詢HTML
- 3. 如果數據集結束,則返回第一條記錄
- 4. mysqli_query()返回整個表的空結果
- 5. mysqli_stmt返回結果對象
- 6. Scriptcontrol對象返回記錄集對象
- 7. mysqli_query返回對象不是資源
- 8. Oracle SQL:如果不滿足條件在返回的結果中創建一條記錄
- 9. 如何在MySQL GROUP BY中返回DATE的第一條記錄?
- 10. 如何使活動記錄連接返回唯一對象?
- 11. 從子查詢使用min()結果返回多條記錄
- 12. 如果條件變量爲空,如何返回所有記錄?
- 13. 爲什麼Spring RowMapper僅返回結果集中的最後一條記錄?
- 14. 將一條記錄轉換爲結果集的多條記錄
- 15. 在c中返回來自同一對象的混合結果#
- 16. 記錄集只返回1000條記錄
- 17. 返回查詢結果如果條件
- 18. 結果只顯示一條記錄
- 19. mysqli_query()返回的東西不是一個對象
- 20. Linq返回1條記錄
- 21. SQL從一條記錄返回多行
- 22. SQL Join只返回一條記錄
- 23. foreach循環 - 只返回一條記錄
- 24. SQL查詢只返回一條記錄
- 25. Xquery只返回一條記錄
- 26. GraphQL繼電器返回一條記錄
- 27. rails範圍返回一條記錄
- 28. sqlite只返回一條記錄
- 29. ldap查詢只返回一條記錄
- 30. 從數據庫返回一條記錄
你嘗試過什麼嗎? – BlitZ
@CORRUPT嘗試併成功使用計數器變量某種類似的方法在答案中給出的方法,但只是想知道是否有任何迭代器函數爲這個像'prev()' – UDB
不,沒有這樣的內置方法(即'prev ()','next()','current()'或'rewind()',就像['iterators'](http://php.net/iterator)一樣)。然而,你可以擴展['mysqli_result'](http://php.net/mysqli-result)類或創建一個[裝飾器](http://stackoverflow.com/questions/948443/how-to-implement-a -decorator-in-php),可以做到這一點。或者乾脆,創建自己的功能。 – BlitZ