|
@@ -49,7 +49,11 @@ function get_chado_stocks($criteria, $match_type, $organism_id = NULL) {
|
|
|
$unknown_provided = TRUE;
|
|
|
$new_criteria = array();
|
|
|
foreach ($criteria['unknown']['columns'] as $column_name) {
|
|
|
- $new_criteria[$column_name] = array('value' => $criteria['unknown']['value'], 'regex'=>TRUE);
|
|
|
+ if (in_array($column_name, array('stock_id','dbxref_id','organism_id','type_id') )) {
|
|
|
+ $new_criteria[$column_name] = array('type'=>'INT','value' => $criteria['unknown']['value']);
|
|
|
+ } else {
|
|
|
+ $new_criteria[$column_name] = array('type'=>'STRING','value' => $criteria['unknown']['value'], 'regex'=>TRUE);
|
|
|
+ }
|
|
|
}
|
|
|
$unknown_stocks = get_chado_stocks($new_criteria, 'ANY', $organism_id);
|
|
|
}
|
|
@@ -81,9 +85,9 @@ function get_chado_stocks($criteria, $match_type, $organism_id = NULL) {
|
|
|
else { $operator = '='; }
|
|
|
|
|
|
if (preg_match('/INT/', $v['type'])) {
|
|
|
- $where[] = $column_name.$operator.$v['value'];
|
|
|
+ $where[] = 'stock.'.$column_name.'='.$v['value'];
|
|
|
} else {
|
|
|
- $where[] = $column_name.$operator."'".$v['value']."'";
|
|
|
+ $where[] = 'stock.'.$column_name.$operator."'".$v['value']."'";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -91,12 +95,19 @@ function get_chado_stocks($criteria, $match_type, $organism_id = NULL) {
|
|
|
//Build query-----------------------------------------
|
|
|
if (preg_match('/ANY/', $match_type)) {
|
|
|
$where_string = implode(' OR ',$where);
|
|
|
+ if ($organism_id) {
|
|
|
+ $where_string = '('.$where_string.') AND organism_id='.$organism_id;
|
|
|
+ }
|
|
|
} else {
|
|
|
$where_string = implode(' AND ',$where);
|
|
|
+ if ($organism_id) {
|
|
|
+ $where_string .= ' AND organism_id='.$organism_id; }
|
|
|
}
|
|
|
+
|
|
|
if (sizeof($where) >= 1) {
|
|
|
$execute_query = TRUE;
|
|
|
$sql_query = 'SELECT stock.stock_id FROM stock '.implode(' ',$joins).' WHERE '.$where_string;
|
|
|
+ drupal_set_message('Query='.$sql_query);
|
|
|
} elseif (!$unknown_provided) {
|
|
|
$execute_query = TRUE;
|
|
|
$sql_query = 'SELECT stock.stock_id FROM stock';
|
|
@@ -111,6 +122,8 @@ function get_chado_stocks($criteria, $match_type, $organism_id = NULL) {
|
|
|
$resource = db_query($sql_query);
|
|
|
tripal_db_set_active($previous_db);
|
|
|
|
|
|
+ //drupal_set_message($sql_query);
|
|
|
+
|
|
|
$stock_ids = array();
|
|
|
while ($r = db_fetch_object($resource)) {
|
|
|
$stock_ids[] = $r->stock_id;
|
|
@@ -118,10 +131,12 @@ function get_chado_stocks($criteria, $match_type, $organism_id = NULL) {
|
|
|
$stock_ids = array_unique($stock_ids);
|
|
|
|
|
|
//Get Stocks------------------------------------------
|
|
|
- $resource = db_query("SELECT nid FROM {chado_stock} WHERE stock_id IN (%s)",implode(',',$stock_ids));
|
|
|
- $main_stocks = array();
|
|
|
- while ($r = db_fetch_object($resource)) {
|
|
|
- $main_stocks[] = node_load($r->nid);
|
|
|
+ if (!empty($stock_ids)) {
|
|
|
+ $resource = db_query("SELECT nid FROM {chado_stock} WHERE stock_id IN (%s)",implode(',',$stock_ids));
|
|
|
+ $main_stocks = array();
|
|
|
+ while ($r = db_fetch_object($resource)) {
|
|
|
+ $main_stocks[] = node_load($r->nid);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -135,7 +150,7 @@ function get_chado_stocks($criteria, $match_type, $organism_id = NULL) {
|
|
|
if(!empty($unknown_stocks)){
|
|
|
return $unknown_stocks;
|
|
|
} else {
|
|
|
- drupal_set_message('No Stocks matched the given criteria','warning');
|
|
|
+ //drupal_set_message('No Stocks matched the given criteria','warning');
|
|
|
return array();
|
|
|
}
|
|
|
}
|