use vars qw($Count);
use HTML::Entities;
use URI::Escape;
-use locale;
use Carp;
-
use DBI;
+use locale;
# bench time
my $bench_time = time();
if (! $self->{c}->{$uc}->{$field}) {
#print stderr "in index: $index_data\n";
- $self->{c}->{$uc}->{$field}->{item} = $index_data;
+ $self->{c}->{$uc}->{$field}->{item} = lc($index_data);
$self->{c}->{$uc}->{$field}->{display} = $display;
}
my $tables_sql = 'data';
my $where_sql = '';
- my @sql_args = ( $field, $where );
+ my @sql_args = ( $field, lc($where) );
if ($filter) {
$tables_sql .= ",filters";
my $sql = qq{
select count(*)
from $tables_sql
- where name = ? and upper(item) like upper(?)||'%'
+ where name = ? and item like ?||'%'
$where_sql
};
my $tables_sql = 'data';
my $where_sql = '';
- my @sql_args = ( $field, $where );
+ my @sql_args = ( $field, lc($where) );
if ($filter) {
$tables_sql .= ",filters";
my $sql2 = qq{
select data.ord as ord
from $tables_sql
- where name = ? and upper(item) like upper(?)||'%'
+ where name = ? and item like ?||'%'
$where_sql
+ order by data.ord
};
my $sth = $self->{dbh}->prepare($sql2) || confess "sql2: $sql2; ".$self->{dbh}->errstr();
$sth->execute(@sql_args) || confess "sql2: $sql2; ".$self->{dbh}->errstr();
if (my $row = $sth->fetchrow_hashref) {
- $from_ord += $row->{ord} - 1;
+ $from_ord = $row->{ord} - 1;
} else {
# if no match is found when searching from beginning
# of word in index, try substring match anywhere
$sql2 = qq{
select data.ord as ord
from $tables_sql
- where name = ? and upper(item) like '% '||upper(?)||'%'
+ where name = ? and item like '%'||?||'%'
$where_sql
+ order by data.ord
};
$sth = $self->{dbh}->prepare($sql2) || confess "sql2: $sql2; ".$self->{dbh}->errstr();
$sth->execute(@sql_args) || confess "sql2: $sql2; ".$self->{dbh}->errstr();
if (my $row = $sth->fetchrow_hashref) {
- $from_ord += $row->{ord} - 1;
+ $from_ord = $row->{ord} - 1;
}
}
}