Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Поиск в mysql (https://forum.antichat.xyz/showthread.php?t=40407)

skzi 19.05.2007 23:18

Поиск в mysql
 
Привет народ! Давно читаю ваш форум в rss формате.
Возникла у меня проблемка. Решил написать свой небольшой двиг. Подскажите пожалуйста, как сделать поиск в MySQl?
Сколько не читал в интернете ничего нормального нету. ПОжалуйтса, напишите или дайте код вместе с формой и т.д. пожалуйста...

Isis 19.05.2007 23:22

Вот скриптик держи
PHP код:

<?php
$name    
= isset($_GET['name'])    ? $_GET['name']         : '';

    if (!
get_magic_quotes_gpc()) {
        
$ver explode'.'PHP_VERSION );
        
$ver_num $ver[0] . $ver[1] . $ver[2];
        if ( 
$ver_num 403 ) {
            
$action mysql_escape_string($action);
            
$number mysql_escape_string($number);
        } else {
            
$action addslashes($action);
            
$number addslashes($number);
        }
    }

    echo 
"<form method='get'>
    <input    type='text'    name='name'    value='search...'/>
    <input    type='submit'    value='post'/>
    </form>"
;

    if (
$name) {
         if(
strlen($name) >= 3) {
        
$query    "SELECT `name` FROM `table_name` WHERE `name` LIKE '%$name%'";
        
$result    mysql_query($query);
        if (!
$result) die(mysql_error());
        if (
mysql_num_rows($result) == ) echo("По вашему запросу ничего не найдено");
            for(
$i 0$i mysql_num_rows($result);$i++) {
                
$row    mysql_fetch_array($result);
                echo 
"<br/><b>".$row['name']."</b>";
        } else {
         echo 
"Ваш запрос слишком короткий";
         }
    }
?>


skzi 20.05.2007 00:27

Спасибо большое!
А есть ли готовые скрипты которые выводят полный текст, ну например как в яндексе:
"4-5 слов до искомого слова"...искомое слово..."4-5 слов после искомого слова"
Если нет то помогите реализовать пожалуйста. И как сделать поиск по 2 таблицам?

GreenBear 20.05.2007 01:53

примерно так
PHP код:

<?php
$text 
'this a (test) test string special for skzi string';
$needle 'string';
$s1 '';
$s2 '';
$len 3;
$array explode(' '$text);


$id array_search($needle,  $array); 
$plus$id+1;
$minus $id-$len;

for(
$i=0;$i<$len;$i++){
    
$s1 .= $array[$minus].' ';
    
$s2 .= $array[$plus].' ';
    
$plus++;$minus++;
}
echo 
$s1.'<b>'.$needle.'</b> '.$s2;
?>


GreenBear 20.05.2007 01:55

Цитата:

И как сделать поиск по 2 таблицам?
Код:

select o.*, t.* FROM one o, two t WHERE (o.field LIKE 'hz') AND (t.filed LIKE 'hz')

skzi 20.05.2007 02:23

Помогите пожалуйста соеденить поиск по бд(1 скрипт) и вывод "4-5 слов до искомого слова"...искомое слово..."4-5 слов после искомого слова" (второй скрипт)
что-то не получается вообще...

GreenBear 20.05.2007 02:27

а чего не получается? возьми из БД текст, впихни его в переменную
PHP код:

$result mysql_query("SELECT textdata FROM table where id=1"$link);
$data mysql_fetch_assoc($result); 

и дальше уже делай там ..

skzi 20.05.2007 02:39

Будте добры, напишите пожалуйста сами... Не получается у меня...

GreenBear 20.05.2007 12:19

позолоти ручку ... тогда тебе сделаю, что скажешь..

skzi 20.05.2007 14:16

Для тебя же нет ничего сложного в этом! ПОМОГИИИИ!


Время: 20:24