[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт подсказок
Эли4ка
Вот есть скрипт на пхп подсказок как у гула,яндекса..но если подставить адрес до этого скрипта..то он покажет все предложенные запросы за все время..
<?
error_reporting(0); // Any notices/warnings will cause errors in suggest javascript


require_once('../../settings/database.php');
require_once('../../settings/conf.php');


if (get_magic_quotes_gpc()==1) {
$_GET['q'] = stripslashes($_GET['q']);
}


$_GET['q'] = addslashes($_GET['q']);

/*
if search string too small, do not search for keywords/phrases
*/

if (strlen($_GET['q'])<3)
{
$suggest_phrases = false;
$suggest_keywords = false;
}

/*
check if search string is phrase
*/

if (!strpos($_GET['q'],' '))
{
$suggest_phrases = false;
}


/*
searches from saved queries (query_log table)
*/


if ($suggest_history && $_GET['q']!='"')
{
$result = mysql_query($sql = "
SELECT query as keyword, max(results) as results
FROM
{$mysql_table_prefix}query_log
WHERE results > 0 AND (query LIKE '
{$_GET['q']}%' OR query LIKE '\"{$_GET['q']}%')
GROUP BY query ORDER BY results DESC
LIMIT
$suggest_rows
");
if($result && mysql_num_rows($result))
{
while($row = mysql_fetch_array($result))
{
$values[$row['keyword']] = $row['results'];
}
}
}


/*
phrase search
!! LOCATE: in MySQL 3.23 this function is case sensitive, while in 4.0 it's only case-sensitive if either argument is a binary string
*/


if ($suggest_phrases)
{
$_GET['q'] = strtolower( str_replace('"','',$_GET['q'] ));
$_words = substr_count($_GET['q'],' ') + 1;

$result = mysql_query($sql = "
SELECT count(link_id) as results, SUBSTRING_INDEX(SUBSTRING(fulltxt,LOCATE('
{$_GET['q']}',LOWER(fulltxt))), ' ', '$_words') as keyword FROM {$mysql_table_prefix}links where fulltxt like '%{$_GET['q']}%'
GROUP BY SUBSTRING_INDEX( SUBSTRING( fulltxt, LOCATE( '
{$_GET['q']}', LOWER(fulltxt) ) ) , ' ', '$_words' ) LIMIT $suggest_rows
");
if($result && mysql_num_rows($result))
{
while($row = mysql_fetch_array($result))
{
//$row['keyword'] = preg_replace("/[^\s\w]/ims",'',$row['keyword']);//array('.',',','?')$row['keyword']);
$values[$row['keyword']] = $row['results'];
}
}
}



/*
keyword search
*/


elseif ($suggest_keywords)
{
for ($i=0;$i<=15; $i++) {
$char = dechex($i);
$result = mysql_query($sql = "
SELECT keyword, count(keyword) as results
FROM
{$mysql_table_prefix}keywords INNER JOIN {$mysql_table_prefix}link_keyword$char USING (keyword_id)
WHERE keyword LIKE '
{$_GET['q']}%'
GROUP BY keyword
ORDER BY results desc
LIMIT
$suggest_rows
");
if($result && mysql_num_rows($result)) {
while($row = mysql_fetch_array($result)) {
$values[$row['keyword']] = $row['results'];
}
}
}

arsort($values);
$values = array_slice($values, 0, $suggest_rows);
}

if (is_array($values))
{
arsort($values);
if (is_array($values)) foreach ($values as $_key => $_val) {
$js_array[] = 'new Array("' .str_replace('"','\"',$_key) . '", " <small class=slovo_result><b>' . $_val . '</b> страниц </small>")';
}
//print utf8_encode("new Array(" . implode(", ", $js_array) . ")");
print "new Array(" . implode(", ", $js_array) . ")";
}

?>


что можно сделать..?



Спустя 5 минут, 23 секунды (21.09.2011 - 03:01) Игорь_Vasinsky написал(а):
покажи хоть где работе....

я уже 2й день не сплю, уневерсирую твой парсер ohmy.gif

Спустя 24 минуты, 54 секунды (21.09.2011 - 03:26) Эли4ка написал(а):
Игорь_Vasinsky
..а в чем проблема с парсером???а зачем Вы так утруждаетесь..?писали бы потихоньку..время ждет..
А работает в скрипте поисковой системы Magic Search ..сейчас не могу код дать..скрипта нет на компьютере..

Спустя 4 минуты, 7 секунд (21.09.2011 - 03:30) Игорь_Vasinsky написал(а):
да просто загорелось сделать, вот и отлаживаю.

Спустя 4 минуты, 28 секунд (21.09.2011 - 03:34) Эли4ка написал(а):
Игорь_Vasinsky
понятно..так Вы можете посоветовать что нибудь по этому поводу..код этого скрипта подсказок я дала..у меня просто вопрос..все выбранные поисковые запросы записываются в БД и выводяться в этом файле в массиве..можно сделать так чтобы это не записывалось в БД ??или я не понятно написала..?

Спустя 3 минуты, 24 секунды (21.09.2011 - 03:38) Игорь_Vasinsky написал(а):
запись проводится через INSERT, здесь я не одного не вижу - но есть SELECT - тут тока поиск по БД

Спустя 7 минут, 36 секунд (21.09.2011 - 03:45) Эли4ка написал(а):
Игорь_Vasinsky
да...я неверно сказала..так что с этим делать

Спустя 1 минута, 2 секунды (21.09.2011 - 03:46) Игорь_Vasinsky написал(а):
Цитата
у меня просто вопрос..все выбранные поисковые запросы записываются в БД и выводяться в этом файле в массиве..можно сделать так чтобы это не записывалось в БД ??

или я не понятно написала..? sad.gif sad.gif sad.gif

Спустя 8 минут, 47 секунд (21.09.2011 - 03:55) Эли4ка написал(а):
Игорь_Vasinsky
хны.. huh.gif в этом скрипте можно как-то сделать так чтобы подсказки показывались..но потом сразу удалялись..(после выбора какого-то предложенного,ну или например если человек сам ввел запрос)...

Спустя 1 минута, 39 секунд (21.09.2011 - 03:57) Игорь_Vasinsky написал(а):
если это очередной autocomplete - то есть же готовые решения. так трудно вникнуть даже в суть.

Спустя 5 минут, 38 секунд (21.09.2011 - 04:02) Эли4ка написал(а):
Игорь_Vasinsky
понятно..ладно попробую сама..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.