|
Posted by Marcel Molenaar on 08/27/07 14:58
"ZeldorBlat" <zeldorblat@gmail.com> wrote in message
news:1188225973.664601.24310@y42g2000hsy.googlegroups.com...
> 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.
>
Thanks!
But is it possible to copy it into a new temporary resource so the original
result will stay untouched?
Marcel
Navigation:
[Reply to this message]
|