init_class('CI_DB_export', 'dbexport'); // ------------------------------------------------------------------------ /** * DB Exporting Class * * @category Database * @author Rick Ellis * @link http://www.codeigniter.com/user_guide/database/ */ class CI_DB_export { /** * Constructor. Simply calls the log function */ function CI_DB_export() { log_message('debug', "Database Export Class Initialized"); } // -------------------------------------------------------------------- /** * Generate CVS from a query result object * * @access public * @param object The query result object * @param string The delimiter - tab by default * @param string The newline character - \n by default * @return string */ function cvs_from_result($query, $delim = "\t", $newline = "\n") { if ( ! is_object($query) OR ! method_exists($query, 'field_names')) { show_error('You must submit a valid result object'); } $out = ''; // First generate the headings from the table column names foreach ($query->field_names() as $name) { $out .= $name.$delim; } $out = rtrim($out); $out .= $newline; // Next blast through the result array and build out the rows foreach ($query->result_array() as $row) { foreach ($row as $item) { $out .= $item.$delim; } $out = rtrim($out); $out .= $newline; } return $out; } // -------------------------------------------------------------------- /** * Generate XML data from a query result object * * @access public * @param object The query result object * @param array Any preferences * @return string */ function xml_from_result($query, $params = array()) { if ( ! is_object($query) OR ! method_exists($query, 'field_names')) { show_error('You must submit a valid result object'); } // Set our default values foreach (array('root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t") as $key => $val) { if ( ! isset($params[$key])) { $params[$key] = $val; } } // Create variables for convenience extract($params); // Load the xml helper $obj =& get_instance(); $obj->load->helper('xml'); // Generate the result $xml = "<{$root}/>".$newline; foreach ($query->result_array() as $row) { $xml .= $tab."<{$element}/>".$newline; foreach ($row as $key => $val) { $xml .= $tab.$tab."<{$key}>".xml_convert($val)."".$newline; } $xml .= $tab."".$newline; } $xml .= "".$newline; return $xml; } } ?>