php classes and data retrieval
| From: | robert | Date: | Fri, 27 Jan 2006 23:40:37 +0000 |
| Subject: | php classes and data retrieval | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-229382@lists.php.net to get a copy of this message | ||
Hello!
I have a database and php classes and I'm not sure the best way I should be retrieving the data.
as below, if 'other' (line 9) is stored in the database as an id of a record in another table,
should my getData() method:
a. return the id as part of the MyObj object and whatever function
that called it is responsible for matching the id to the name?
or
b. should it look up the value from within the class?
(I read something about JOIN or stuff beyond SELECT --sorry i'm kinda just getting into this-- could bring a database to it's knees)
Also I thought that with OOP you are supposed to keep the classes independent of each other, but I was thinking if I need a MyObj I would want all the data in a ready usable form and not a mix of data and database ids.
I'm not sure what is the best practice or even if there is a correct one, but suggestions would be appreciated!
-robert
here is my set up:
DATABASE:
myobj_table with id, name, other as columns
other_table with id, name as columns
PHP CLASSES:
1: <?php
2:
3: /* base object data structure */
4: class MyObj {
5:
6: function MyObj($id, $name, $other) {
7: $this->id = $id; 8: $this->name = $name; 9: $this->other = $other; // ?? ID OR VALUE ??10: } 11: 12: // getters/setters 13: 14: } 15: 16: 17: /* create/update/delete database methods */ 18: class MyObjData { 19: 20: var $_id; 21: var $_items; 22: 23: function MyObjData($id) {
24: $this->_id = $id;25: } 26: 27: function getData() {
28: $query = "select * from myobject_table where id='" . $this-_id . "'"; 29: $records = getDatabaseRecords($query); // some db action: returns an array of records
30: foreach ($records as $record) {
31: $data = new MyObj(
32: $record['id']
33: , $record['name']
34: , $record['other']
35: );
36: $this->_items[] = $data;
37: unset($data);
38: }
39: return $this->_items;
40: }
41:
42: // other methods
43:
44: }
45:
46:
47:
48: ?>