Professional CodeIgniter

(singke) #1

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”;
Free download pdf