ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   Поиск в mysql (https://forum.antichat.io/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) == 0 ) 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

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

skzi 20.05.2007 21:27

Ну народ! для вас же ничего сложного нет в этом, а мне нужно..

GreenBear 20.05.2007 21:57

раз ты решил написать, так и напиши..
я не пойму вообще, что тебе нужно?.. тут нету телепатов угадывать чтобы..

skzi 20.05.2007 22:37

За скрипты спасибо...


Время: 22:18