]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/WikiDB/adodb/adodb-iterator.inc.php
Reformat code
[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     Iterator code based on http://cvs.php.net/cvs.php/php-src/ext/spl/examples/cachingiterator.inc?login=2
19  */
20
21 class ADODB_Iterator implements Iterator
22 {
23
24     private $rs;
25
26     function __construct($rs)
27     {
28         $this->rs = $rs;
29     }
30
31     function rewind()
32     {
33         $this->rs->MoveFirst();
34     }
35
36     function valid()
37     {
38         return !$this->rs->EOF;
39     }
40
41     function key()
42     {
43         return $this->rs->_currentRow;
44     }
45
46     function current()
47     {
48         return $this->rs->fields;
49     }
50
51     function next()
52     {
53         $this->rs->MoveNext();
54     }
55
56     function __call($func, $params)
57     {
58         return call_user_func_array(array($this->rs, $func), $params);
59     }
60
61     function __toString()
62     {
63         return 'ADODB Iterator';
64     }
65
66 }
67
68 class ADODB_BASE_RS implements IteratorAggregate
69 {
70     function getIterator()
71     {
72         return new ADODB_Iterator($this);
73     }
74 }