मैंने हमेशा वस्तुओं का उपयोग किया है - लेकिन मैं डेटा को सीधे क्वेरी से नहीं डालता। 'सेट' फ़ंक्शन का उपयोग करके मैं लेआउट बनाता हूं और इसलिए जुड़ने और नामकरण टकराव के मुद्दों से बचता हूं। आपके 'full_name' उदाहरण के मामले में मैं शायद नाम भागों को प्राप्त करने के लिए 'as' का उपयोग करूंगा, प्रत्येक को ऑब्जेक्ट में सेट करूंगा और सदस्य fn के रूप में 'get_full_name' की पेशकश करूंगा।
यदि आप महत्वाकांक्षी महसूस कर रहे हैं तो आप 'get_age' में हर तरह की चीज़ें जोड़ सकते हैं। जन्मतिथि एक बार सेट करें और वहां से हट जाएं।
संपादित करें:आपके डेटा से ऑब्जेक्ट बनाने के कई तरीके हैं। आप कक्षा को पूर्वनिर्धारित कर सकते हैं और ऑब्जेक्ट बना सकते हैं या आप उन्हें 'फ्लाई पर' बना सकते हैं।
--> कुछ सरलीकृत उदाहरण - यदि यह पर्याप्त नहीं है तो मैं और जोड़ सकता हूं।
उड़ने पर:
$conn = DBConnection::_getSubjectsDB();
$query = "select * from studies where Status = 1";
$st = $conn->prepare( $query );
$st->execute();
$rows = $st->fetchAll();
foreach ( $rows as $row )
{
$study = (object)array();
$study->StudyId = $row[ 'StudyId' ];
$study->Name = $row[ 'StudyName' ];
$study->Investigator = $row[ 'Investigator' ];
$study->StartDate = $row[ 'StartDate' ];
$study->EndDate = $row[ 'EndDate' ];
$study->IRB = $row[ 'IRB' ];
array_push( $ret, $study );
}
पूर्वनिर्धारित:
/** Single location info
*/
class Location
{
/** Name
* @var string
*/
public $Name;
/** Address
* @var string
*/
public $Address;
/** City
* @var string
*/
public $City;
/** State
* @var string
*/
public $State;
/** Zip
* @var string
*/
public $Zip;
/** getMailing
* Get a 'mailing label' style output
*/
function getMailing()
{
return $Name . "\n" . $Address . "\n" . $City . "," . $State . " " . $Zip;
}
}
उपयोग:
$conn = DBConnection::_getLocationsDB();
$query = "select * from Locations where Status = 1";
$st = $conn->prepare( $query );
$st->execute();
$rows = $st->fetchAll();
foreach ( $rows as $row )
{
$location = new Location();
$location->Name= $row[ 'Name' ];
$location->Address = $row[ 'Address ' ];
$location->City = $row[ 'City' ];
$location->State = $row[ 'State ' ];
$location->Zip = $row[ 'Zip ' ];
array_push( $ret, $location );
}
फिर बाद में आप $ret और आउटपुट मेलिंग लेबल पर लूप कर सकते हैं:
foreach( $ret as $location )
{
echo $location->getMailing();
}