<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Generating Query Results : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
Query Results
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->


<br clear="all" />


<!-- START CONTENT -->
<div id="content">



<h1>Generating Query Results</h1>


<p>There are several ways to generate query results:</p>

	<h2>result()</h2>

	<p>This function returns the query result as an array of <strong>objects</strong>, or <strong>an empty array</strong> on failure.

	Typically you'll use this in a foreach loop, like this:</p>

	<code>
	$query = $this->db->query("YOUR QUERY");<br />
	<br />
	foreach ($query->result() as $row)<br />
	{<br />
	&nbsp;&nbsp;&nbsp;echo $row->title;<br />
	&nbsp;&nbsp;&nbsp;echo $row->name;<br />
	&nbsp;&nbsp;&nbsp;echo $row->body;<br />
	}</code>

	<p>The above <dfn>function</dfn> is an alias of <dfn>result_object()</dfn>.</p>

	<p>If you run queries that might <strong>not</strong> produce a result, you are encouraged to test the result first:</p>

	<code>
	$query = $this->db->query("YOUR QUERY");<br />
	<br />
	if ($query->num_rows() > 0)<br />
	{<br />
	&nbsp;&nbsp;&nbsp;foreach ($query->result() as $row)<br />
	&nbsp;&nbsp;&nbsp;{<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->body;<br />
	&nbsp;&nbsp;&nbsp;}<br />
	}
	</code>

	<p>You can also pass a string to result() which represents a class to instantiate for each result object (note: this class must be loaded)</p>

	<code>
	$query = $this->db->query("SELECT * FROM users;");<br />
	<br />
	foreach ($query->result('User') as $user)<br />
	{<br />
	&nbsp;&nbsp;&nbsp;echo $row->name; // call attributes<br />
	&nbsp;&nbsp;&nbsp;echo $row->reverse_name(); // or methods defined on the 'User' class<br />
	}
	</code>

	<h2>result_array()</h2>

	<p>This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:</p>
	<code>
	$query = $this->db->query("YOUR QUERY");<br />
	<br />
	foreach ($query->result_array() as $row)<br />
	{<br />
	&nbsp;&nbsp;&nbsp;echo $row['title'];<br />
	&nbsp;&nbsp;&nbsp;echo $row['name'];<br />
	&nbsp;&nbsp;&nbsp;echo $row['body'];<br />
	}</code>


	<h2>row()</h2>

	<p>This function returns a single result row. If your query has more than one row, it returns only the first row.
	The result is returned as an <strong>object</strong>. Here's a usage example:</p>
	<code>
	$query = $this->db->query("YOUR QUERY");<br />
	<br />
	if ($query->num_rows() > 0)<br />
	{<br />
	&nbsp;&nbsp;&nbsp;$row = $query->row();
	<br /><br />
	&nbsp;&nbsp;&nbsp;echo $row->title;<br />
	&nbsp;&nbsp;&nbsp;echo $row->name;<br />
	&nbsp;&nbsp;&nbsp;echo $row->body;<br />
	}
	</code>

	<p>If you want a specific row returned you can submit the row number as a digit in the first parameter:</p>

	<code>$row = $query->row(<dfn>5</dfn>);</code>

	<p>You can also add a second String parameter, which is the name of a class to instantiate the row with:</p>

	<code>
	$query = $this->db->query("SELECT * FROM users LIMIT 1;");<br />
	<br />
	$query->row(0, 'User')<br />
	echo $row->name; // call attributes<br />
	echo $row->reverse_name(); // or methods defined on the 'User' class<br />
	</code>

	<h2>row_array()</h2>

	<p>Identical to the above <var>row()</var> function, except it returns an array. Example:</p>

	<code>
	$query = $this->db->query("YOUR QUERY");<br />
	<br />
	if ($query->num_rows() > 0)<br />
	{<br />
	&nbsp;&nbsp;&nbsp;$row = $query->row_array();
	<br /><br />
	&nbsp;&nbsp;&nbsp;echo $row['title'];<br />
	&nbsp;&nbsp;&nbsp;echo $row['name'];<br />
	&nbsp;&nbsp;&nbsp;echo $row['body'];<br />
	}
	</code>


	<p>If you want a specific row returned you can submit the row number as a digit in the first parameter:</p>

	<code>$row = $query->row_array(<dfn>5</dfn>);</code>


	<p>In addition, you can walk forward/backwards/first/last through your results using these variations:</p>

<p>
	<strong>$row = $query->first_row()</strong><br />
	<strong>$row = $query->last_row()</strong><br />
	<strong>$row = $query->next_row()</strong><br />
	<strong>$row = $query->previous_row()</strong>
</p>

<p>By default they return an object unless you put the word "array" in the parameter:</p>

<p>
	<strong>$row = $query->first_row('array')</strong><br />
	<strong>$row = $query->last_row('array')</strong><br />
	<strong>$row = $query->next_row('array')</strong><br />
	<strong>$row = $query->previous_row('array')</strong>
</p>



<h1>Result Helper Functions</h1>


<h2>$query->num_rows()</h2>
<p>The number of rows returned by the query. Note: In this example, <dfn>$query</dfn> is the variable that the query result object is assigned to:</p>

<code>$query = $this->db->query('SELECT * FROM my_table');<br /><br />
echo $query->num_rows();
</code>

<h2>$query->num_fields()</h2>
<p>The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:</p>

<code>$query = $this->db->query('SELECT * FROM my_table');<br /><br />
echo $query->num_fields();
</code>



<h2>$query->free_result()</h2>
<p>It frees the memory associated with the result and deletes the result resource ID. Normally PHP frees its memory automatically at the end of script
execution. However, if you are running a lot of queries in a particular script you might want to free the result after each query result has been
generated in order to cut down on memory consumptions. Example:
</p>

<code>$query = $this->db->query('SELECT title FROM my_table');<br /><br />
foreach ($query->result() as $row)<br />
{<br />
&nbsp;&nbsp;&nbsp;echo $row->title;<br />
}<br />
$query->free_result(); // The $query result object will no longer be available<br />
<br />
$query2 = $this->db->query('SELECT name FROM some_table');<br /><br />
$row = $query2->row();<br />
echo $row->name;<br />
$query2->free_result(); // The $query2 result object will no longer be available
</code>





</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="queries.html">Queries</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="helpers.html">Query Helper Functions</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
</div>

</body>
</html>
