Difference between revisions of "JDatabaseQuery"
From Joomla! Documentation
(New page: <span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>Edit Descripton<nowiki>]</nowiki>
</span>
{{Description:JDatabaseQuery}}
===Define...) |
|||
(3 intermediate revisions by 3 users not shown) | |||
Line 64: | Line 64: | ||
|} | |} | ||
+ | |||
===Importing=== | ===Importing=== | ||
<source lang="php">jimport( 'joomla.database.databasequery' );</source> | <source lang="php">jimport( 'joomla.database.databasequery' );</source> | ||
Line 82: | Line 83: | ||
format= ,,, | format= ,,, | ||
</dpl> | </dpl> | ||
+ | '''Simple Example''' | ||
+ | |||
+ | The following is a very simple use of the JDatabaseQuery class: | ||
+ | <source lang="php"> | ||
+ | function getListQuery() | ||
+ | { | ||
+ | $query = new JDatabaseQuery(); | ||
+ | $query->select('*'); | ||
+ | $query->from('#__categories'); | ||
+ | return $query; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ---- | ||
+ | '''Complex Example''' | ||
+ | |||
+ | Consider a case in which we have three tables called "property", "building" and "unit". The primary keys for these tables are "property_id", "building_id" and "unit_id", respectively. We want to build a method which returns the number of units associated with a property_id which is passed to our method. The unit table has no direct relationship to the property table. It does have a relationship to the building table, which in turn has a relationship to the property table. The following method will build the query and execute it, returning the value for which we're looking. | ||
+ | <source lang="php"> | ||
+ | function countUnits($property_id) | ||
+ | { | ||
+ | $db =& JFactory::getDBO(); | ||
+ | $query = $db->getQuery(true); | ||
+ | $query->select('count(*)'); | ||
+ | $query->from('#__pt_building AS b'); | ||
+ | $query->leftJoin('#__pt_unit AS u ON b.building_id = u.building_id'); | ||
+ | $query->where('b.property_id = '. (int) $property_id); | ||
+ | $db->setQuery($query); | ||
+ | return $db->loadResult(); | ||
+ | } | ||
+ | </source> |
Revision as of 19:36, 7 March 2011
The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
[Edit Descripton] Template:Description:JDatabaseQuery
Defined in[edit]
libraries/joomla/database/databasequery.php
Methods[edit]
Method name | Description |
---|---|
clear | Clear data from the query or a specific clause of the query. |
select | |
delete | |
insert | |
update | |
from | |
join | |
innerJoin | |
outerJoin | |
leftJoin | |
rightJoin | |
set | |
where | |
group | |
having | |
order | |
__toString | string The completed query |
Importing[edit]
jimport( 'joomla.database.databasequery' );
[Edit See Also] Template:SeeAlso:JDatabaseQuery
Examples[edit]
<CodeExamplesForm />
Simple Example
The following is a very simple use of the JDatabaseQuery class:
function getListQuery()
{
$query = new JDatabaseQuery();
$query->select('*');
$query->from('#__categories');
return $query;
}
Complex Example
Consider a case in which we have three tables called "property", "building" and "unit". The primary keys for these tables are "property_id", "building_id" and "unit_id", respectively. We want to build a method which returns the number of units associated with a property_id which is passed to our method. The unit table has no direct relationship to the property table. It does have a relationship to the building table, which in turn has a relationship to the property table. The following method will build the query and execute it, returning the value for which we're looking.
function countUnits($property_id)
{
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('count(*)');
$query->from('#__pt_building AS b');
$query->leftJoin('#__pt_unit AS u ON b.building_id = u.building_id');
$query->where('b.property_id = '. (int) $property_id);
$db->setQuery($query);
return $db->loadResult();
}