Пребарување низ база

  • Креатор на темата Креатор на темата Antagonist
  • Време на започнување Време на започнување

Antagonist

Systematic Victory
Член од
7 април 2007
Мислења
842
Поени од реакции
41
Некој готов алгоритам за пребарување низ база ???
располага некој со нешто такво да сподели ????

пример , не ми треба едноставно нешто , да помине у база
и да најде со LIKE , се што се поклопува и да ми врати резултат

и ми треба нешто по напредно , да не работи само за цел израз ...
да го крши стрингот на два дела , или повеќе ако е тоа потребно
и да ми го најде кој дел од текстот е точно тој збор ,
да го врати тој стринг ... за да може во БОЛД да го ставам делот
корисникот да види каде е пронајден тој резултат ...

мислам дека сум јасен ... у суштина барам убав алогиртам ...
не е битен јазикот , ќе си преведам во тоа што ќе ми треба...
 
Не е баш тоа што ми треба , Скриптава тука пребарува низ фајлови
на серверот ... Мене сите податоци ми се во база ....
 
Има , ама нема тоа што барам ... Многу е едноставно да направиш пребарување така ...
Само со SQL наредба , и што ќе најде , тоа е тоа ....
Мене ми треба следново .... Ако има повеќе клучни зборови за пребарување , тогаш ...ај sql не е проблем , "select * from tabaela where kolona like prviot and like vtoriot" ... ама пак кога ќе го најде резлутатот сакам да изгледа вака ....

.... .бла блаб лба ПРВИОТ блаб лабл албс ВТОРИОТ балблаа ПРВИОТ ....

Делбата на збориви и да ги најде каде се , и да ги прикаже да биде динамична , без разлика колку зборови ќе ставиш.....

такви search ови како до сеа што ми предложивте веќе направив , направив и подобри , успевам да го најдам резултатот , ама работи само за еден клучен збор .. една цела фраза , не го дели на повеќе па така да пребарува ...

еве видете пример до кај сум стигнал со развојот
http://www.kolumnist.mk/search.php
 
Има , ама нема тоа што барам ... Многу е едноставно да направиш пребарување така ...
Само со SQL наредба , и што ќе најде , тоа е тоа ....
Мене ми треба следново .... Ако има повеќе клучни зборови за пребарување , тогаш ...ај sql не е проблем , "select * from tabaela where kolona like prviot and like vtoriot" ... ама пак кога ќе го најде резлутатот сакам да изгледа вака ....

.... .бла блаб лба ПРВИОТ блаб лабл албс ВТОРИОТ балблаа ПРВИОТ ....

Делбата на збориви и да ги најде каде се , и да ги прикаже да биде динамична , без разлика колку зборови ќе ставиш.....

такви search ови како до сеа што ми предложивте веќе направив , направив и подобри , успевам да го најдам резултатот , ама работи само за еден клучен збор .. една цела фраза , не го дели на повеќе па така да пребарува ...

еве видете пример до кај сум стигнал со развојот
http://www.kolumnist.mk/search.php

Епа друже како што успеав да видам со еден збор добро си работи, пребарува, прикажува, болдира... е сега за повеќе зборови ќе направиш функција која ќе ти генерира динамичко квери.

Значи доколку се повеќе зборови ќе го поделиш внесениот стринг на одделни зборови и ќе изгенерираш query за сите зборови или пак во foreach циклус ќе правиш query и ќе му ги додаваш резултатите...

Вака нешто:

PHP:
<?php
$arr = split(" ", $input_string); // или на запирки да ти ги подели
foreach ($arr as $value) {
$sql = "select * from table_name where column_name like %$value%";
array_push($results, mysql_query($sql));
}
// $results = низа со резултатите
// $arr = клучните зборови
?>
 
Ја би идел вака:

<?php




$arr = split(" ", $input_string); // или на запирки да ти ги подели

$sql = "select * from table_name where";

foreach ($arr as $value) {

// samo za ova AND , treba malku logika da se sredi , bitno da bide edno celo query
// za da na kraj gi imash samo onie rezultati kade vo kombinacija ke gi sodrzi
// tie zborovi

$sql .= " and column_name like %$value%";
//array_push($results, mysql_query($sql));
}
$results = mysql_query($sql);
// $results = низа со резултатите
// $arr = клучните зборови




?>

Vistinskata maka mi e , prikazuvanjeto na pronajdeniot rezultat ...
Ne mi e mnogu user friendly , ako mu go tupnam delot i sam da si bara kaj se pojavil zborot.... Sakam bash tie zborovi da bidat boldirani .. i mukata e sledna ....


Zamisli , prviot keyword , e na pocetokot na stringot ,koj e prilicno dolg , a drugiot e na krajot ....Ke treba ogromen tekst da mu prikazam .... shto znaci mora da ima kratenje i precizno prikazuvanje ...

Работата е што неам многу време да седнам да програмирам , па мислев ако некој има нешто такво готово....

Фала у секој случај... :)
 
Има низ нетов готови скрипти за „advances search engine“ само не сум имал потреба од таква ствар до сега, единствено што би можел е или да те испратам на гугл или да ти кажам некое решение од прва рака што ми паѓа на ум (како тоа претходното), али сепак, ако земеш да го правиш тоа „рачно“ не е тешко, ама има доста заебанции, башка треба да се внимава и на SQL Injection и XSS напади зашто „search“ делот претежно е мета за такви напади. :)

Едит:

Уште едно решение, само со едно query:

PHP:
<?php
$search = str_replace($input_string, " ", "%");
$sql = "select * from table_name where column_name like '%$search%'";
$results = mysql_query($sql);
// И за да препознава кои зборови да ги болдира
$arr = split(" ", $input_string);
// arr ќе ти биде низата со клучните зборови
?>

И на крај пак истиот проблем, да го направиш јузер френдли и тоа е тоа. :)
 
али сепак, ако земеш да го правиш тоа „рачно“ не е тешко, ама има доста заебанции, башка треба да се внимава и на SQL Injection и XSS напади зашто „search“ делот претежно е мета за такви напади. :)
Да си ми жив и здрав , тоа сакав да го пишам и јас ... едноставно има доста заебанции кои ќе ти одземат многу време ... дури и за тоа што сега го имам направено се зезав кажи речи цел ден ...
 

Kajgana Shop

Back
На врв Bottom