Thank you, This makes allot of sense. However one last question about this. If I access the overrided function from the child class do I access it by. $instanceofchildclass->parent::someMethod(); OR would I still simply just call it $instanceofchildclass->someMethod(); And it would get to use the overrided function in the child class?? -- Blessed Be Phillip "Matthew Weier O'Phinney" <matthew@xxxxxxxxxx> wrote in message news:slrncv2arf.ukc.matthew@xxxxxxxxxxxxxxxxxxxxxxx > * Brent Baisley <brent@xxxxxxxxxxxx> : > > You've got most of it. Just adding "extends MySQL" to your page result > > class will allow you to access all function in the MySQL class. I > > usually reference functions in the parent class like this: > > parent::FunctionName() > > This is a bad practice when inheriting, usually -- the whole point is > that the parent classes methods are directly available to the child > class without using such constructs. > > $this-> FunctionName() > > will execute the method 'FunctionName' from the current class -- or any > parent class if it is not defined in the current class. There's one good > exception: > > > You still reference functions in the current class using $this-> , that > > way you can have functions of the same name in both classes. > > To make a method in the child class of the same name as a method in the > parent class is called overriding -- and is usually done to either > change the behaviour of that method (for example, if you want to do > something completely different than what was done in the parent class) > or to supplement the behaviour of the parent method -- for instance, if > the child class wishes to do some processing before or after the parent > method is executed. In this latter case, you *will* use the > parent::FunctionName() construct -- so that you can actually access the > method you're currently overriding: > > class parentClass > { > // ... > > function someMethod() > { > // do something > } > } > > class someClass extends parentClass > { > // ... > > function someMethod() > { > // do some processing first > parent::someMethod(); > // do some postprocessing > } > } > > So, in the OP's case, he might want to have override the fetchAssoc() > method in his PageResultSet subclass so that it tacks on the LIMIT info > to the SQL statement, and then have it call the parent (Mysql class) > fetchAssoc() method with that modified SQL. > > > On Jan 20, 2005, at 9:17 PM, Phillip S. Baker wrote: > > > > > Greetings all, > > > > > > I have a class I use for MySQL connection and functions. > > > > > > I also have a class that I use to create Paged Results. > > > > > > The paged results class connects to a DB and uses allot of sql calls > > > to make this happen. I am noticing that it does allot that the MySQL > > > class does. > > > > > > What I would like to do is to Have the paged results extend the > > > MySQL class so it can use the functions within that class so I can > > > keep them updated in just one place. How would I go about doing > > > that?? Is it as simple as something like this (this is shortened for > > > convience)?? > > > > > > class Mysql { > > > var $results; > > > var $dbcnx; > > > > > > function Mysql($query, $cnx) { // Constructor function > > > $this-> dbcnx = $cnx; > > > if (!$this-> results = @mysql_query($query)) > > > $this-> _error("There was an error with executing your query. Try > > > again > > > later.", $query); > > > } > > > } > > > > > > class PageResultSet extends MySQL { > > > var $results; > > > > > > function PageResultSet ($query,$pageSize,$resultpage,$cnx) { > > > > > > $this-> results = @mysql_query($query,$cnx) or $this-> _error('Error > > > Running > > > your search. Try back later.', $query); > > > $this-> pageSize = $pageSize; > > > if ((int)$resultpage <= 0) $resultpage = 1; > > > if ($resultpage > $this-> getNumPages()) > > > $resultpage = $this-> getNumPages(); > > > $this-> setPageNum($resultpage); > > > } > > > } > > > > > > I would like to be able to pass the results from the MySQL class to the > > > PageResultSet class without have to do the query over and such. > > > How would I go about coding that? I am not clear on that. > > > > > > Also can I extend a function in PageResultSet that is started in > > > MySQL?? > > > In MySQL I have > > > function fetchAssoc() { > > > if (!$this-> results) return FALSE; > > > $this-> row++; > > > return mysql_fetch_assoc($this-> results); > > > } > > > > > > In PageResultSet I have > > > function fetchAssoc() { > > > if (!$this-> results) return FALSE; > > > if ($this-> row > = $this-> pageSize) return FALSE; > > > $this-> row++; > > > return mysql_fetch_assoc($this-> results); > > > } > > > > > > Can I just write something like within PageResultSet > > > function fetchAssocPRS extends fetchAssoc () { > > > if ($this-> row > = $this-> pageSize) return FALSE; > > > } > > > > > > Thanks for the help. > > > > > > -- > > > Blessed Be > > > > > > Phillip > > > > > > -- > > > PHP General Mailing List (http://www.php.net/) > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > -- > Matthew Weier O'Phinney | mailto:matthew@xxxxxxxxxx > Webmaster and IT Specialist | http://www.garden.org > National Gardening Association | http://www.kidsgardening.com > 802-863-5251 x156 | http://nationalgardenmonth.org -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php