blob: a2e3e3e4cc0fc3ffbec440d10bad86745bb06a01 [file] [log] [blame]
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Code Igniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author Rick Ellis
* @copyright Copyright (c) 2006, pMachine, Inc.
* @license http://www.codeignitor.com/user_guide/license.html
* @link http://www.codeigniter.com
* @since Version 1.0
* @filesource
*/
// INITIALIZE THE CLASS ---------------------------------------------------
$obj =& get_instance();
$obj->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)."</{$key}>".$newline;
}
$xml .= $tab."</{$element}>".$newline;
}
$xml .= "</$root>".$newline;
return $xml;
}
}
?>