Я конвертирую Perl-скрипт для секретных объявлений / плоских файлов, чтобы использовать mysql / dbi;У меня есть этот код поиска, и он не очень хорошо работает.Он найдет Vintage_Trailers из item_category, но если я включу item_state, он ничего не найдет.Мне нужно, чтобы найти только Vintage_Trailers только в Неваде, например.Но пользователь не может выбрать состояние, поэтому нужно найти только Vintage_trailers.Или, может быть, только ключевые слова «Шаста» ... Что-то «из коробки», которое я могу изменить, было бы отлично.Любая помощь приветствуется.
$searchfor="$multi_input $keywords $user $item_category $item_city $item_state";
my $dsn = "DBI:mysql:$database";
my $dbh = DBI->connect($dsn, $userid, $password )
or die $DBI::errstr;
my @searchthings = split(/ /,$searchfor);
foreach $thing(@searchthings)
{
if ($thing){
$statement .= "(item_name like '%$thing%' or
item_desc like '%$thing%' or
item_desc2 like '%$thing%' or
item_category like '%$thing%' or
item_city like '%$thing%' or
item_state like '%$thing%' or
user like '%$thing%' ) ";
}
}
$sth = $dbh->prepare(qq(select * from ads where $statement)) or die $DBI::errstr;
$sth->execute();
while ((my (@rows)) = $sth->fetchrow_array)
{
$total_row_count= $sth->rows;
$database_rows = join ("\|", @rows);
push (@database_rows,$database_rows);
}
$sth->finish() or die $DBI::errstr;
$dbh->disconnect() or die $DBI::errstr;