Sorry por levantar un post antiguo, pero me funko la idea, y la quiero compartir.
En mi proyecto ocupo PDO asi que el ejemplo sera con este.
Código PHP:
<?php
$query = "SELECT User.name, User.mail, User.last_connect, Group.name, Group.created
FROM users as User
LEFT JOIN groups as Group ON (User.group_id = Group.id)
WHERE User.id = 1";
$dbQuery = $this->db->prepare($query);
$dbQuery->execute();
$columns = $dbQuery->columnCount();
$map = array();
for ($i = 0; $i < $columns; $i++) {
$columnData = $dbQuery->getColumnMeta($i);
$map[$i]['field'] = $columnData['name'];
$map[$i]['table'] = $columnData['table'];
}
$out[] = array();
while($row = $dbQuery->fetch(PDO::FETCH_NUM))
{
foreach($row as $key => $data)
{
$className = $map[$key]['table'];
$fieldName = $map[$key]['field'];
$out[][$className][$fieldName] = $data;
}
}
return $out;
?>
Bueno ahi una porcion del codigo que realiza la magia, obvie el hecho de poner que $this->db es el objecto PDO.
Devuelve un array asociativo al estilo Cake, de hecho hace lo mismo cake, pero no ocupa PDO, y no tenia idea que PDO tenia los metodos para lograrlo.
Si no ocupan PDO pueden revisar para MySQL
http://cl2.php.net/manual/es/functio...etch-field.php
Saludos y espero les sirva.