Chapter 3: A 10,000 - Foot View of CodeIgniter
56
To loop over the result set of that query, you can use either the result() or result_array() methods,
depending on whether you like to process your results as an object or as an array.$sql = “select a.name, a.id, b.groupname
from persons a, groups b
where a.group_id = b.id
group by b.groupname, a.name”;$Q = $this- > db- > query($sql);foreach ($Q- > result() as $row){
echo $row- > name;
echo $row- > id;
echo $row- > groupname;
}//here’s the alternative approach, with result_array
foreach ($Q- > result_array() as $row){
echo $row[‘name’];
echo $row[‘id’];
echo $row[‘groupname’];}There ’ s really no discernible difference from a performance standpoint, but some developers prefer one
over the other. It ’ s your choice, really.If you need a count of rows in a result set, use the num_rows() method:$sql = “select a.name, a.id, b.groupname
from persons a, groups b
where a.group_id = b.id
group by b.groupname, a.name”;$Q = $this- > db- > query($sql);if ($Q- > num_rows()){
foreach ($Q- > result() as $row){
echo $row- > name;
echo $row- > id;
echo $row- > groupname;
}
}Sometimes you may have a query that generates just one result row. In that case, use row() or
row_array() (again, depending on your preference) to process that result set.$sql = “select a.name, a.id, b.groupname
from persons a, groups b
where a.group_id = b.id
limit 1”;