->getLinks() (Previous) (Next) ->joinAdd()

View this page in Last updated: Sun, 01 Jul 2007
English | Dutch | French | German | Hungarian | Japanese | Polish | Russian | Spanish | Plain HTML

->selectAs()

->selectAs() -- Build the select component of a query (usually for joins)

Descripción

Auto creates select items based on either the current objects column names, the supplied object, or an array.

This is primarily used in conjunciton with joinAdd, to enable the renaming of columns into a fixed format when they are likely to have naming conflicts (like both tables have an 'id' column).

Sending no arguments to selectAs, will reset the current select (usually removing the default *), and build a select list based on the current objects column names.

Parámetro

  • object | array $column_or_object - a dataobject or array of column names

  • string $format - the format the columns will appear, using sprintf format, the %s is replaced with the column name so car_%s would result in the SQL 'car.name as car_name' being generated.

  • string $tableName - this is used either when use send an array as the first argument, or when you are joining a table 'as' another name,

Nota

Esta función no puede ser llamada estáticamente.

Ejemplo

Ejemplo 35-1. Using selectAs()


<?php       
// ok lets see what is going on..
DB_DataObject::debugLevel(1);       
       
$person = new DataObjects_Person;


// to generate "person.id as id , person.name as name ......."
$person->selectAs();

// to generate a restricted list.. "person.age as age , person.name as name"
$person->selectAs(array('age','name'));

// using another object. 
$car = new DataObjects_Car;

// this is the first car (
$car->use = 'first';


// using the joinadd add the car..
$person->joinAdd($car); 

// now add all the select columns for the car eg. "car.id as car_id, car.name as car_name ...."
$person->selectAs($car, 'car_%s');


// select only a few columns from the car table.
// note you have to use the table name at the end..
$person->selectAs(array('color','topspeed'), 'car_%s','car');




// now the user can have a second car....
$secondcar = new DataObjects_Car;
$secondcar->use = 'second';

// now since we alreay have one car, the sql statement would get messy 
// so we are joining this as the second car "FROM person INNER JOIN car ..... , car as secondcar WHERE .....
$person->joinAdd($secondcar,'','secondcar'); 

// and we can now add all the columns
// "secondcar.id as secondcar_id, secondcar.name as secondcar_name ........
// note that you must use the last field as the SECONDCAR.ID format uses the 'AS' name, rather than the 
// objects real table name 'car'
$person->selectAs($secondcar, 'secondcar_%s','secondcar');

 

// ok fire of a query...
$person->find();
while ($person->fetch()) {
  ......
}


?>

->getLinks() (Previous) (Next) ->joinAdd()

Download Documentation Last updated: Sun, 01 Jul 2007
Do you think that something on this page is wrong? Please file a bug report or add a note.
User Notes:
Note by: user@example.com
To have columns prefixed for primary table :
$do->selectAs(null, 'prefix_%s');