private function lookup_taxon_name_batch($taxon_concept_ids) { $entry_taxon_concept_ids = array(); foreach ($GLOBALS['db_connection']->iterate("\n SELECT pref.taxon_concept_id, he.id, n.string\n FROM taxon_concept_preferred_entries pref\n JOIN hierarchy_entries he ON (pref.hierarchy_entry_id=he.id)\n LEFT JOIN names n ON (he.name_id=n.id)\n WHERE pref.taxon_concept_id IN (" . implode(",", $taxon_concept_ids) . ")") as $row) { $entry_taxon_concept_ids[$row['id']] = $row['taxon_concept_id']; $this->taxon_concept_names[$row['taxon_concept_id']]['scientificName'] = $row['string']; } $kingdom_ids = Rank::kingdom_rank_ids(); $phylum_ids = Rank::phylum_rank_ids(); // $class_ids = Rank::class_rank_ids(); // $order_ids = Rank::order_rank_ids(); $family_ids = Rank::family_rank_ids(); // $all_rank_ids = array_merge($kingdom_ids, $phylum_ids, $class_ids, $order_ids, $family_ids); $all_rank_ids = array_merge($kingdom_ids, $phylum_ids, $family_ids); foreach ($GLOBALS['db_connection']->iterate("\n SELECT hef.hierarchy_entry_id, he.id, he.rank_id, n.string\n FROM hierarchy_entries_flattened hef\n JOIN hierarchy_entries he ON (hef.ancestor_id=he.id)\n LEFT JOIN names n ON (he.name_id=n.id)\n WHERE hef.hierarchy_entry_id IN (" . implode(",", array_keys($entry_taxon_concept_ids)) . ")\n AND he.rank_id IN (" . implode(",", $all_rank_ids) . ")") as $row) { $taxon_concept_id = $entry_taxon_concept_ids[$row['hierarchy_entry_id']]; $name_string = $row['string']; if (Name::is_surrogate($name_string)) { continue; } if (in_array($row['rank_id'], $kingdom_ids)) { $this->taxon_concept_names[$taxon_concept_id]['kingdom'] = $name_string; } elseif (in_array($row['rank_id'], $phylum_ids)) { $this->taxon_concept_names[$taxon_concept_id]['phylum'] = $name_string; } elseif (in_array($row['rank_id'], $family_ids)) { $this->taxon_concept_names[$taxon_concept_id]['family'] = $name_string; } } }