function chado_get_table_max_rank
2.x tripal_core.chado_general.api.inc | chado_get_table_max_rank($tablename, $where_options) |
3.x tripal_chado.query.api.inc | chado_get_table_max_rank($tablename, $where_options) |
Get max rank for a given set of criteria.
This function was developed with the many property tables in chado in mind but will work for any table with a rank.
Parameters
tablename: the name of the chado table you want to select the max : rank from this table must contain a rank column of type integer.
where_options: array(: <column_name> => array( 'type' => <type of column: INT/STRING>, 'value' => <the value you want to filter on>, 'exact' => <if TRUE use =; if FALSE use ~>, ) ) where options should include the id and type for that table to correctly group a set of records together where the only difference are the value and rank.
Return value
The maximum rank.
Related topics
4 calls to chado_get_table_max_rank()
- chado_update_node_form_properties in legacy/
tripal_core/ api/ tripal_core.chado_nodes.properties.api.inc - This function is used in hook_insert or hook_update and handles inserting of any new properties
- chado_update_node_form_relationships in legacy/
tripal_core/ api/ tripal_core.chado_nodes.relationships.api.inc - This function is used in hook_insert or hook_update and handles inserting of relationships between the current nodetype and other memebers of the same nodetype
- get_max_chado_rank in legacy/
tripal_core/ api/ tripal_core.DEPRECATED.inc - tripal_get_max_chado_rank in legacy/
tripal_core/ api/ tripal_core.DEPRECATED.inc
2 string references to 'chado_get_table_max_rank'
- get_max_chado_rank in legacy/
tripal_core/ api/ tripal_core.DEPRECATED.inc - tripal_get_max_chado_rank in legacy/
tripal_core/ api/ tripal_core.DEPRECATED.inc
File
- tripal_chado/
api/ tripal_chado.query.api.inc, line 243 - Provides an API for querying of chado including inserting, updating, deleting and selecting from chado.
Code
function chado_get_table_max_rank($tablename, $where_options) {
$where_clauses = array();
$where_args = array();
//generate the where clause from supplied options
// the key is the column name
$i = 0;
$sql = "
SELECT max(rank) as max_rank, count(rank) as count
FROM {" . $tablename . "}
WHERE
";
foreach ($where_options as $key => $value) {
$where_clauses[] = "$key = :$key";
$where_args[":$key"] = $value;
}
$sql .= implode($where_clauses, ' AND ');
$result = chado_query($sql, $where_args)->fetchObject();
if ($result->count > 0) {
return $result->max_rank;
}
else {
return -1;
}
}