|
Posted by ZeldorBlat on 08/27/07 14:46
On Aug 27, 10:25 am, "Marcel Molenaar" <afraidofs...@spam.nl> wrote:
> Anyone ever experienced this problem.
>
> When i pass a mysql result to the constructor of a class and use that
> resultset inside that class the original resultset outside the class gets
> affected too. That is not right i think because my result inside my class is
> private. Is this a bug? Can someone look at my code below please:
>
> <?php
>
> require_once('includes/connect.php');
>
> class test {
>
> private $_result;
> private $_record;
>
> public function __construct($result) {
>
> $this->_result = $result;
>
> }
>
> public function show() {
>
> while($this->_record = mysql_fetch_array($this->_result)) {
>
> echo $this->_record['name'].'<br />';
>
> }
>
> }
>
> }
>
> # usage
> # sql statement dat artikels ophaald uit cartal database
> $SQL = "SELECT * FROM test_table";
>
> # uitvoeren van dit statement
> $RESULT = mysql_query($SQL,$conn);
>
> $t = new test($RESULT);
>
> $t->show();
>
> // mysql_data_seek($RESULT,0);
>
> // this prints out nothing unless i call mysql_data_seek($RESULT,0) before
> this whileloop so that means that the pointer of the recordset had moved to
> the end because of the while loop in the class itself...that is strange!
> while($RECORD = mysql_fetch_array($RESULT)) {
>
> echo $RECORD['name'].'<br />';
>
> }
>
> ?>
The result is a resource, so there's only one of them to pass around.
It doesn't make a copy of it when you pass it into the class.
[Back to original message]
|