function tripal_stock_get_stocks_by_stockprop
2.x tripal_stock.DEPRECATED.inc | tripal_stock_get_stocks_by_stockprop($stockprop_values, $stock_values) |
3.x tripal_stock.DEPRECATED.inc | tripal_stock_get_stocks_by_stockprop($stockprop_values, $stock_values) |
1.x tripal_stock.api.inc | tripal_stock_get_stocks_by_stockprop($stockprop_values, $stock_values) |
Purpose: Retrieve stocks based on associated stock properties
$stockprop_values = array(
'value' => 'CDC Redberry',
'type_id' => array (
'cv_id' => array (
'name' => 'stock_properties',
),
'name' => 'synonym',
'is_obsolete' => 0
),
);
$stock_values = array(
'organism_id' => array(
'genus' => 'Lens',
'species' => 'culinaris',
),
);
$result = tripal_stock_get_stocks_by_stockprop($stockprop_values, $stock_values);
The above code selects all Lens culinaris stocks with the synonym (stock property) CDC Redberry. The nodes for each stock selected are loaded and returned in an array.
Parameters
$stockprop_values: An array of column_name => value where column_name is any column in the stockprop table and value is the value you want that column to be. This is used as a tripal_core_chado_select values array so nesting is allowed.
$stock_values: An array of column_name => value where column_name is any column in the stock table and value is the value you want that column to be. This is used as a tripal_core_chado_select values array so nesting is allowed.
Return value
An array of stock node objects
Example usage:
Related topics
File
- tripal_stock/
api/ tripal_stock.api.inc, line 168 - Provides an application programming interface (API) to manage stocks
Code
function tripal_stock_get_stocks_by_stockprop($stockprop_values, $stock_values) {
//add stock values to stockprop values
if (!empty($stock_values)) {
$stockprop_values['stock_id'] = $stock_values;
}
//get stock_ids from stockprop table
$stock_ids = tripal_core_chado_select('stockprop', array('stock_id'), $stockprop_values);
// Change from stock_ids to nodes-----------------------------------
$stock_ids = array_filter($stock_ids);
$stock_ids = array_unique($stock_ids);
$stocks = array();
foreach ($stock_ids as $stock_id) {
$node = tripal_stock_get_stock_by_stock_id($stock_id->stock_id);
if ($node) {
$stocks[] = $node;
}
}
return $stocks;
}