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;
}