Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в xml и вывод результата! 
:(
    Опции темы
SweetTequila
Дата 6.11.2013, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.11.2013

Репутация: нет
Всего: нет



Люди добрые,помоги пожалуйста,темному человеку
Дело в том,что,на компьюторе установлен Denwer (PHP 5.3.13, MySQL 5.1, PostgreSQL 8.4 etc.) ,а бд в Postgresql ставит таблицы в кодировке только win-1251.В другой кодировке бд не устанавливаеться,выдает ошибку.Так проблема в том,что когда вводится английские слова,то выдаются xml документы в которых это слово встречается,а если вводить русские слова или некий текст,то просто белый экран и больше ничего.В чем может быть проблема? (((
Очень нужна ваша помощь 

Код

<?php
header( 'Content-Type: text/html; charset=utf-8');
if (isset($_GET['search']) && ($_GET['search'] != ""))
{
// поисковой запрос
$str = $_GET['search'];

function prepString($str) {

// шаблоны для поиска
$pattern = array( 
1 => '/((ив|ивши|ившись|ыв|ывши|ывшись)|((?<=[ая])(в|вши|вшись)))$/',
2 => '/(с[яь])$/',
3 => '/(ее|ие|ые|ое|ими|ыми|ей|ий|ый|ой|ем|им|ым|ом|его|ого|еых|ую| юю|ая|яя|ою|ею)$/',
4 => '/((ивш|ывш|ующ)|((?<=[ая])(ем|нн|вш|ющ|щ)))$/',
5 => '/((ила|ыла|ена|ейте|уйте|ите|или|ыли|ей|уй|ил|ыл|им|ым|ены|ит ь|ыть|ишь|ую|ю)|((?<=[ая])(ла|на|ете|йте|ли|й|л|ем|н|ло|но|ет|ют|ны|ть|ешь|нно)))$/',
6 => '/(а|ев|ов|ие|ье|е|иями|ями|ами|еи|ии|и|ией|ей|ой|ий|й|и|ы|ь|и ю|ью|ю|ия|ья|я)$/'
);

// подготовка строки для поиска
if ( preg_match($pattern[1], $str) ) {
$test = preg_replace($pattern[1], '.*', $str);
} else if( preg_match($pattern[2], $str) ) {
$test = preg_replace($pattern[2], '.*', $str);
} else if( preg_match($pattern[3], $str) ) {
$test = preg_replace($pattern[3], '.*', $str);
} else if( preg_match($pattern[4], $str) ) {
$test = preg_replace($pattern[4], '.*', $str);
} else if( preg_match($pattern[5], $str) ) {
$test = preg_replace($pattern[5], '.*', $str);
} else if( preg_match($pattern[6], $str) ) {
$test = preg_replace($pattern[6], '.*', $str);
} else {
$test = $str . '.*';


}
return $test;
}

// формируем строку для поиска
$str = explode(" ", trim($str));
$search = '/';
foreach ( $str as $val ) {
$search .= prepString($val);
}
$search .= '/xsi';

// устанавливаем соединение с БД
$db = pg_connect("host=localhost dbname=labsxml user=postgres password= ") 
or die("Ошибка подключения к БД:" . pg_last_error());

$sql = 'SELECT name, opicanie FROM "gods"';
$query = pg_query($db, $sql) or die("Ошибка запроса:" . pg_last_error());

while ( $data = pg_fetch_array($query, NULL, PGSQL_ASSOC) ) {
$result[] = $data;
}

foreach ( $result as $val ) {
if ( preg_match($search, $val['name']) ) {
echo $val['opicanie']; 
echo '<br>';
}
}

pg_close($db);
}
?>


Это сообщение отредактировал(а) SweetTequila - 6.11.2013, 12:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.