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

Posted by Marcel Molenaar on 08/28/07 07:14

"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
news:VMGdnYHK5OIFd0_bnZ2dnUVZ_uXinZ2d@comcast.com...
> 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.
>
> --

Thanks for your help!

 

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

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