Webmaster общности: Predpriemach.com | SearchEngines.bg

    MySQL търсачка

    form.php

    <FORM method="post" action="?action=search"> <!-- или action="search.php" -->
    <TABLE cellspacing=0 cellspaseing=0 border=0>
    <tr>
    <td>
    <INPUT TYPE=text name="search" size=41 maxlength=255>
    <INPUT type=submit VALUE="Търси">
    </td></tr></TABLE>
    </FORM>

    Тук направихме формата в която се пише думата за търсене.

    search.php

    <?
    include('conf.php');
    $search=$HTTP_POST_VARS['search'];
    
    // Малка защита от хакерчета, не знам колко е надеждна. Променя < и > в < и >.
    $search=str_replace("<", '<', $search);
    $search=str_replace(">", '>', $search);
    
    // Този ред прави търсената дума с малки букви т.е. СоФиЯ става софия
    $search=strtolower($search);
    
    // Тук търсим думата в базата данни в таблицата която сме присвоили на $table (след малко ще я присвоим). lower(kolona1) означава, че всички думи в колона1 ще бъдат видяни с малки букви както в примера показан горе. %$search% значи, че ако търсим за 'офи' търсачката ще искара 'софия' % замества букви или знаци в случея в началото и в края на думата или ако търсим 'кон' ще ни покаже 'конски'
    $query=mysql_query("SELECT * FROM $table WHERE lower(kolona1) like '%$search%' or lower(kolona2) like '%$search%'");
    
    // Тук вече изваждаме резултатите и ги подреждаме в <div> и всеки резултат във <fieldset>
    echo "<div style=\"float: left; margin-left: 30px;\">";
    
    while ($row = mysql_fetch_array($query)) {
    
    
    // title е заглавие, url е адрес, descr е описание, това са имена на колони в таблицата $table.
    echo "
    <fieldset style=\"font-size: 12px; margin-top: 7px; width: 400px;\">
    <legend>".$row['title']."</legend>
    <br /><a href=\"$row[url]\" class=\"link3\" target=\"_blank\">".$row['descr']."</a>
    </fieldset>";
    
    
    }
    
    
    echo "</div>";
    ?>

    След като направихме формата за търсене и самата търсачка е време да направим и таблицата в MySQL. В PhpMyAdmin създаваме таблица search.

    CREATE TABLE `search` (
    `id` int(10) NOT NULL auto_increment,
    `title` text NOT NULL,
    `url` text NOT NULL,
    `descr` text NOT NULL,
    PRIMARY KEY (id)
    );

    Следва да попълним conf.php

    <?
    $hostname = "localhost";
    $username = "Потребител";
    $password = "Парола";
    $db = "Име на базата данни";
    
    /* Таблица в MySQL, в която се съхраняват данните */
    $table = "search";
    MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не мога да създам връзка ");
    
    @mysql_select_db("$db") or die("Не мога да избера базата данни ");
    ?>

    Сега вече нашата търсачка работи, но може би ще ни трябва и форма с която да добавяме записи в таблицата, защото няма да има полза от празна таблица.

    submit.php

    <fieldset style="width: 400px;">
    <legend style="font-size:12px;"><b>Добави сайт в търсачката</b></legend>
    <form method="post" action="?action=submit_in_search"> <!-- или submit_in_search.php -->
    <table width="100%" border="0" cellspacing="0" cellpadding="3" style="border-collapse: collapse" bordercolor="#111111">
    
    <tr>
    <td class="form"> Име на сайта:</td>
    <td><input type="text" name="title" size="27" class="forma"></td>
    </tr>
    <tr>
    <td class="form"> Url:</td>
    <td><input type="text" name="url" size="27" value="http://" class="forma"></td>
    </tr>
    <tr valign="top">
    <td class="form"> Описание:</td>
    <td><textarea name="descr" rows="7" cols="25" class="forma"></textarea></td>
    </tr>
    </tr>
    <tr valign="top">
    <td class="form"> Ключови думи:</td>
    <td><textarea name="words" rows="7" cols="25" class="forma"></textarea></td>
    </tr>
    <tr><td></td><td><input type="submit" value="Добави" class="forma"></td></tr>
    
    
    </table>
    
    </form>
    </fieldset>

    Тази форма изпраща въведените данни до submit_in_search.php който ги попълва в таблицата

    <?
    include('conf.php');
    $words=$HTTP_POST_VARS['words'];
    $title=$HTTP_POST_VARS['title'];
    $url=$HTTP_POST_VARS['url'];
    $descr=$HTTP_POST_VARS['descr'];
    
    // Същата защита от псевдо хакери
    $words=str_replace("<", '<', $words);
    $words=str_replace(">", '>', $words);
    
    $url=str_replace("<", '<', $url);
    $url=str_replace(">", '>', $url);
    
    $title=str_replace("<", '<', $title);
    $title=str_replace(">", '>', $title);
    
    $descr=str_replace("<", '<', $descr);
    $descr=str_replace(">", '>', $descr);
    
    // Добавяме данните в таблицата
    $add_link = mysql_query("INSERT INTO `$table` (id, words, title, url, descr)". "VALUES ('NULL', '$words', '$title','$url','$descr')");
    
    // Проверяваме дали данните са добавени и съобщаваме резултата
    if (!$add_link)
    {
    echo "
    <tr><td><font class=\"error\">
    За съжеление, сайта не беше добавен в каталога
    </font></td></tr>
    ";
    
    }
    else
    {
    echo "
    <tr><td>
    Сайтът беше добавен успешно! <a href=\"?action=submit.php\" class=\"link3\">Можете да добавите нов сайт.</a>
    </td></tr>
    ";
    }
    ?>