You are here: Re: Strange class OOP behavior « PHP Language « IT news, forums, messages
Re: Strange class OOP behavior

Posted by Jerry Stuckle on 08/27/07 15:14

Marcel Molenaar wrote:
> "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
>
>

You can make a copy, but since this isn't your actual data, but a
reference to data residing in MySQL, it won't do any good.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация