--- trunk/index_DBI_cache.pm 2003/10/29 23:19:58 139 +++ trunk/index_DBI_cache.pm 2003/10/30 00:10:09 140 @@ -107,15 +107,16 @@ } } -sub check { +sub count { my $self = shift; my $field = shift; + my $where = shift; - my $sql = "select count(*) from $field"; + my $sql = "select count(*) from $field where upper(item) like upper(?)||'%'"; my $sth = $self->{dbh}->prepare($sql) || die $self->{dbh}->errstr(); - $sth->execute() || die "sql: $sql; ".$self->{dbh}->errstr(); + $sth->execute($where) || die "sql: $sql; ".$self->{dbh}->errstr(); my ($total) = $sth->fetchrow_array(); @@ -127,7 +128,6 @@ my $self = shift; my $field = shift; - my $what = shift || 'item'; # 'item,ident' my $where = shift; my $from_ord = shift || 0; @@ -135,10 +135,10 @@ my @sql_args; - my $sql = "select $what,ord from $field"; + my $sql = "select item,ord from $field"; if ($where) { - my $sql2 = "select ord from $field where upper($what) like upper(?)||'%'"; + my $sql2 = "select ord from $field where upper(item) like upper(?)||'%'"; my $sth = $self->{dbh}->prepare($sql2) || die "sql2: $sql2; ".$self->{dbh}->errstr(); $sth->execute($where) || die "sql2: $sql2; ".$self->{dbh}->errstr(); @@ -147,7 +147,7 @@ } else { # if no match is found when searching from beginning # of word in index, try substring match anywhere - $sql2 = "select ord from $field where upper($what) like '%'||upper(?)||'%'"; + $sql2 = "select ord from $field where upper(item) like '%'||upper(?)||'%'"; $sth = $self->{dbh}->prepare($sql2) || die "sql2: $sql2; ".$self->{dbh}->errstr(); $sth->execute($where) || die "sql2: $sql2; ".$self->{dbh}->errstr(); if (my $row = $sth->fetchrow_hashref) {