Zend - The PHP Company




Databases

Add Code


DB Row Helper v1.0  

Type: class
Added by: eineke
Entered: 26/05/2002
Last modified: 05/12/2001
Rating: - (fewer than 3 votes)
Views: 5562
mysql/database helper class


<b>description</b>
-----------

In my code, every result row is converted to its own object for easier access. These object members need proper names, so I wrote myself a small base class, which automates the task of assigning an array's content to a object.

This class extends your own class by 2 special functions and 1 (2) special array:

<b>functions</b>
---------

1.
  helper__SetMembers ($fields)

  Toss in an associated arrayas as an argument,
  like mysql_fetch_assoc would return (*hint*
  *hint*), and it converts its key/value pairs to their
  assigned member names/values.

2.
  helper__ReturnFields ()

  Spits out an associated array, like
  mysql_fetch_array would do (*hint* *hint*).


<b>arrays</b>
------

1.
  helper__array

  This array HAS to be set either in your class or
  in your class's constructor. It has to follow
  this format:

  key   = field name of a row
  value = a member variable name of this class

  i.e.:
    Array
    (
        [client_id] => mId
        [client_username] => mUsername
        [client_password] => mPassword
    )

2.
  helper_rev_array

  This array is created for the reverse look-up
  of the key/value pairs. Do NOT TOUCH! ;)


<b>code</b>
----

<?php

/* {FILE}                                                                     */
/*      description (s):    mysql/database helper class v1.0                  */

/* {AUTHOR}                                                                   */
/*      Christopher Eineke                                                    */

class DBRowHelper
{   /*{variables}*/
    
var $helper__array;
    var 
$helper__rev_array;

    
/*{constructor}*/
    
function MysqlHelper ()
    {
        
$this->helper__array      = array ( );
        
$this->helper__rev_array  = array ( );
    }

    
/*{functions}*/
    
function helper__SetMembers ($fields)
    {   
$variable_name "";

        foreach (
$fields as $field_name => $field_value)
        {
            
$member_name $this->helper__array["$field_name"];     // get associated member variable name
            
$this->$member_name $field_value;                     // save data
        
}
    }

    function 
helper__ReturnFields ()
    {   
$ret_Array = array ( );

        foreach (
$this->helper__array as $key => $value)    // we have to reverse key/value order here
            
$this->helper__rev_array["$value"] = $key;          // so we can find the associated field name

        
foreach ($this->helper__rev_array as $member_name => $field_name)
        {
            
$field_name $this->helper__rev_array["$member_name"]; // get associated field name
            
echo $field_name;
            
$ret_Array["$field_name"] = $this->$member_name;
        }

        return 
$ret_Array;
    }
}

?>


Usage Example


<?php

class CUser extends DBRowHelper
{   /*{variables}*/
    
var $mId;
    var 
$mUsername;
    var 
$mPassword;

    
/*{constructor}*/
    
function CUser ()
    {
        
$this->mId             0;
        
$this->mUsername       "";
        
$this->mPassword       "";

        
$this->helper__array = array ("user_id" => "mId",
                                      
"user_username" => "mUsername",
                                      
"user_password" => "mPassword",
                                     );
    }
}

//faking a mysql_fetch_array ;)
$a["user_id"] = "1";
$a["user_username"] = "sledge";
$a["user_password"] = "hammer";

$user__helped = new CUser;
$user__helped->helper__SetMembers ($a);
$b $user__helped->helper__ReturnFields ();
print_r ($user__helped);
print_r ($b);

?>


Rate This Script





Search



This Category All Categories