function get_paths($names) { global $db; global $config; $paths = array(); $names = array_unique($names); foreach ($names as $name) { if ($config['use_gbif']) { $sql = 'SELECT * FROM nub_2011_10_31 WHERE (name = ' . $db->qstr($name) . ') LIMIT 1'; //echo $sql; $result = $db->Execute($sql); if ($result == false) { die("failed [" . __LINE__ . "]: " . $sql); } if ($result->NumRows() != 0) { $path = ''; $keys = array('k', 'p', 'c', 'o', 'f', 'g', 's'); foreach ($keys as $k) { if ($result->fields[$k] != '') { $path .= '/' . $result->fields[$k]; } } //echo $path . '<br/>'; store_path($result->fields['concept_id'], $path); $paths[$name] = $path; } } else { $sql = 'SELECT name, path FROM col_tree INNER JOIN taxa USING(record_id) WHERE (name = ' . $db->qstr($name) . ') LIMIT 1'; $result = $db->Execute($sql); if ($result == false) { die("failed [" . __LINE__ . "]: " . $sql); } if ($result->NumRows() != 0) { $paths[$name] = $result->fields['path']; } } } return $paths; }
<?php // create GBIF paths require_once 'paths.php'; for ($i = 0; $i <= 5937422; $i++) { //echo $i . "\n"; echo '.'; $sql = 'SELECT * FROM nub_2011_10_31 WHERE concept_id = ' . $i . ' AND path IS NULL LIMIT 1'; $result = $db->Execute($sql); if ($result == false) { die("failed [" . __LINE__ . "]: " . $sql); } if ($result->NumRows() == 1) { $path = ''; $keys = array('k', 'p', 'c', 'o', 'f', 'g', 's'); foreach ($keys as $k) { if ($result->fields[$k] != '') { $path .= '/' . $result->fields[$k]; } } //echo $path . "\n"; store_path($result->fields['concept_id'], $path); } }