Регистрирайте се безплатно, за да използвате услугите на сайта! | Вход
Начало Новини ИТ Работа Форум Видео Уроци Скриптове WiFi точки MyLinks Mytech Още


Нова тема
Може би имахте предвид...
Тази тема е погледната 294 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 12.05.2008 16:04
cnoko
Калфа

Мнения: (48)

Значи разбрах как се прави
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$duma = 'test';
$len = strlen($duma);
$like = array();
for($i = 0; $i <= $len;$i++)
{
$like[] = "'" . substr($duma,0,$i) . '%' . substr($duma,$i) . "'";
}
$sql_where = 'pole LIKE ' . implode(' OR pole LIKE ',$like);
unset($like);
$sql = mysql_query("SELECT pole FROM dumi WHERE $sql_where LIMIT 1");
$row = mysql_fetch_array($sql);
if($row['pole'])
{
echo 'Може би имахте предвид: ' . $row['pole'];
}
?>
да,но от каде да взема тези думи?


 
---------------------------
Потребител от: 06.05.08 | Всички уроци от cnoko | Всички скриптове от cnoko
напиши eMail напиши лично съобщение виж профила на cnoko
Публикувано на: 12.05.2008 16:33
PureEvil
Самурай

Мнения: (1803)

ЪЪЪ??
Поста ти с какво е свързан?


 
---------------------------
Потребител от: 17.02.05 | Всички уроци от PureEvil | Всички скриптове от PureEvil

Liberate Tu Temet Ex Inferis
напиши eMail напиши лично съобщение виж профила на PureEvil
Публикувано на: 12.05.2008 17:12
cnoko
Калфа

Мнения: (48)

Ами значи имам таблица в която ще се записват някакъв текст и търсачка която ще търси записи,но при търсене поради правописна грешка или пропусната буква да изкарва Може би имахте в предвид: ...
и как ще стане точно от къде да взимам тея думи?
Нещо като на google
и дали по-горе кода ще стане (не съм го пробвал)


 
---------------------------
Потребител от: 06.05.08 | Всички уроци от cnoko | Всички скриптове от cnoko
напиши eMail напиши лично съобщение виж профила на cnoko
Публикувано на: 12.05.2008 18:03
imagination
Ронин

Мнения: (178)

 Този отговор е маркиран като удовлетворителен!

Те хората отдавна са го измислили :)
 levenshtein
Аз ползвам речника на OpenOffice  за база данни от думи
 цък
И ето примера от пхп.нет с базата на офиса :)
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
//прочитаме думите. Това трябва да се преработи, че така ползва много памет :) Също така след
"почистването" могат да се запищат в база от данни или друг фаил. Така ще се оптимизира и няма да бави толкова.
$dictionary = "bg_BG.dic";
$words = file($dictionary);
foreach($words as $w=>$k) {
   
$word = &$words[$w];
   
if (strpos($word, "/") !== false) {
    
$word = substr($word,0,strpos($word,"/"));
   
}
}

//търсена дума
$input = 'ризаf';

//
no shortest distance found, yet
$shortest = -1;

//
loop through words to find the closest
foreach
($words as $word) {

  
// calculate the distance between the input word,
  
// and the current word
   
$lev = levenshtein($input, $word);

  
// check for an exact match
   
if ($lev == 0) {

      
// closest word is this one (exact match)
       
$closest = $word;
       
$shortest = 0;

      
// break out of the loop; we've found an exact match
        break
;
   
}

  
// if this distance is less than the next found shortest
  
// distance, OR if a next shortest word has not yet been found
   
if ($lev <= $shortest || $shortest < 0) {
      
// set the closest match, and shortest distance
       
$closest  = $word;
       
$shortest = $lev;
   
}
}

echo "Input word: $input\n";
if ($shortest == 0) {
   
echo "Exact match found: $closest\n";
} else {
   
echo "Did you mean: $closest?\n";
}

?>
едит:
А още по-оптимално е ако се прави переодично индекс на думите в базата данни и това се използва за основа на търсенето
Поздрави :)


 
Това мнение е редактирано от imagination на 12.05.2008 18:04
---------------------------
Потребител от: 17.02.06 | Всички уроци от imagination | Всички скриптове от imagination

http://www.absurdi.com
напиши eMail напиши лично съобщение виж профила на imagination
Публикувано на: 12.05.2008 22:03
cnoko
Калфа

Мнения: (48)

мерси мноо
няма да ползвам файл за база данни, а с Mysql
са го пиша като свърша ще ти пратя нещата по ЛС да пробваш :)


 
---------------------------
Потребител от: 06.05.08 | Всички уроци от cnoko | Всички скриптове от cnoko
напиши eMail напиши лично съобщение виж профила на cnoko
 1 посетител чете тази тема (0 потребители и 1 гост)  
Активни потребители: ---
   




mytech.bg © 2004 - 2009 | Контакти | За реклама