コード例 #1
0
ファイル: search.php プロジェクト: noveopiu/dCTL
// header
require_once str_replace('//', '/', dirname(__FILE__) . '/') . 'header.php';
$connection = dctl_sql_connect(DCTL_DB_ICONCLASS);
if ($connection) {
    //
    $name = '';
    if (isset($_REQUEST['name'])) {
        $name = $_REQUEST['name'];
    }
    $id = '';
    if (isset($_REQUEST['id'])) {
        $id = $_REQUEST['id'];
    }
    if ($name != '') {
        $nameX = my_strtoupper($name);
        $nameSoundex = my_soundex($nameX);
        echo "<h2>Ricerca per NOME: " . $name . " ({$nameX} - {$nameSoundex})</h2>";
        $query = "SELECT  * FROM tNAME WHERE tNAME.nameSoundex='{$nameSoundex}' OR tNAME.nameNormalized LIKE '%{$nameX}%' OR SUBSTRING(SOUNDEX(tNAME.nameNormalized), 1, 4) =  SUBSTRING(SOUNDEX('" . $name . "'), 1, 4) ORDER BY tNAME.name";
    } else {
        echo "<h2>Ricerca per KEY: {$id}</h2>";
        $query = "SELECT  * FROM tNAME WHERE tNAME.id='{$id}'";
    }
    $result = mysql_query($query) or die("Error in query: {$query}.  " . mysql_error());
    if (mysql_num_rows($result) > 0) {
        echo '<table>';
        echo '<tr>';
        echo '<th>Soggetto</th>';
        echo '<th>Key</th>';
        echo '<th>Iconclass</th>';
        echo '</tr>';
        $prev = '';
コード例 #2
0
ファイル: functions.inc.php プロジェクト: noveopiu/dCTL
function getRetrieverDB($doc, $what, $selector)
{
    $returnText = '';
    global $mysql_dbName;
    try {
        $mysql_dbName = dctl_sql_connect(DCTL_DB_NAME);
    } catch (Exception $e) {
        die('<div class="wctl_error">[DB] ' . $e . '</div>');
    }
    $name = $what;
    $nameX = my_strtoupper($name);
    $nameSoundex = my_soundex($nameX);
    $query = "SELECT * FROM tNAME WHERE";
    $byCode = preg_match('/^\\d{6}$/', $nameX);
    if ($byCode) {
        $query .= " tNAME.id = {$nameX} ";
    } else {
        $query .= " tNAME.nameNormalized LIKE '%{$nameX}%' ";
        if ($selector != '') {
            $query .= "AND tNAME.type='{$selector}' ";
        }
    }
    $query .= "ORDER BY tNAME.name";
    $result = mysql_query($query, $mysql_dbName) or die("Error in query: {$query}.  " . mysql_error());
    $code = array();
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        if (intval($row['collector']) != 0) {
            $code[$row['collector']] = $row['collector'];
        } else {
            $code[$row['id']] = $row['id'];
        }
    }
    if (count($code) > 0) {
        $iter = -1;
        $query = "SELECT * FROM tNAME WHERE ";
        foreach ($code as $collector => $id) {
            ++$iter;
            if ($iter > 0) {
                $query .= "OR ";
            }
            $query .= "tNAME.id='{$collector}' ";
        }
        $query .= "ORDER BY tNAME.type, tNAME.name";
        $result = mysql_query($query, $mysql_dbName) or die("Error in query: {$query}.  " . mysql_error());
        mysql_close($mysql_dbName);
        if (mysql_num_rows($result)) {
            $cachedKEY = '';
            // load all KEYs to cache for next XSLT
            preloadKEY($doc, &$cachedKEY);
            if ($cachedKEY) {
                while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                    $theKey = sprintf("%06s", $row['id']);
                    if (stripos($cachedKEY, $theKey) !== false) {
                        $returnText .= $row['name'];
                        $returnText .= ' [' . $row['type'] . ']';
                        $returnText .= "|" . $theKey . "\n";
                    }
                }
            }
        }
    }
    return $returnText;
}