]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/WikiDB/adodb/adodb-iterator.inc.php
No newline at end of file
[SourceForge/phpwiki.git] / lib / WikiDB / adodb / adodb-iterator.inc.php
1 <?php
2
3 /*
4   V4.22 15 Apr 2004  (c) 2000-2004 John Lim (jlim@natsoft.com.my). All rights reserved.
5   Released under both BSD license and Lesser GPL library license.
6   Whenever there is any discrepancy between the two licenses,
7   the BSD license will take precedence.
8
9   Set tabs to 4.
10
11   PHP5 Iterator Class:
12
13           $rs = $db->Execute("select * from adoxyz");
14         foreach($rs as $k => $v) {
15             echo $k; print_r($v); echo "<br>";
16         }
17
18
19     Iterator code based on http://cvs.php.net/cvs.php/php-src/ext/spl/examples/cachingiterator.inc?login=2
20  */
21
22  class ADODB_Iterator implements Iterator {
23
24     private $rs;
25
26     function __construct($rs)
27     {
28         $this->rs = $rs;
29     }
30     function rewind()
31     {
32         $this->rs->MoveFirst();
33     }
34
35     function valid()
36     {
37         return !$this->rs->EOF;
38     }
39
40     function key()
41     {
42         return $this->rs->_currentRow;
43     }
44
45     function current()
46     {
47         return $this->rs->fields;
48     }
49
50     function next()
51     {
52         $this->rs->MoveNext();
53     }
54
55     function __call($func, $params)
56     {
57         return call_user_func_array(array($this->rs, $func), $params);
58     }
59
60     function __toString()
61     {
62         return 'ADODB Iterator';
63     }
64
65
66 }
67
68
69 class ADODB_BASE_RS implements IteratorAggregate {
70     function getIterator() {
71         return new ADODB_Iterator($this);
72     }
73 }
74
75 ?>