Создать ответ 
Поиск по сайту
Автор Сообщение
Роман Не на форуме
Младший сержант
*

Сообщений: 26
У нас с: Nov 2012
Сообщение: #1
Поиск по сайту
Люди, помогите, пожалуйста! Есть вот такой код:
Код:
<?php
    include ("blocks/db.php");
    if (isset($_POST['submit_s'])) {
        $submit_s = $_POST['submit_s'];
        }
    
    if (isset($_POST['search'])) {
        $search = $_POST['search'];
        }
    
    if (isset($submit_s)) {
        if (empty($search) or strlen($search) < 3) {
            exit ("<p>Вы не ввели ни одного слова в поисковую строку, либо Ваш запрос менее двух символов</p>");
            }
        $search = trim($search);
        $search = stripslashes($search);
        $search = htmlspecialchars($search);
        }
    
    else {
        exit ("<p>Вы обратились к файлу без необходимых параметров</p>");
        }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
    <head>
        <link rel="icon" href="images/site/icon.ico" type="image/x-icon">
        <link rel="shortcut icon" href="images/site/icon.ico" type="image/x-icon">
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script src="js/jquery 1.8.0.js" type="text/javascript"></script>
        <title><?php echo "Результат поиска - $search";?></title>
    </head>
    <body>
        <div id="wrapper">
            <?php include ("blocks/header.php");?>
            <?php include ("blocks/sidebar_l.php");?>
            <?php include ("blocks/sidebar_r.php");?>
            <div id="conteiner">
                <div id="conteiner_t">
                    <div class="title">«<?php echo "Результат поиска - $search";?>»</div>
                </div>
                <div id="conteiner_c">
                    <?php
                    $result10 = mysql_query ("SELECT id, author, title, year, postscoring, description, image, view, date, meter FROM audiobooks WHERE MATCH(author, title, text) AGAINST('$search')", $db);
                        if (!$result10) {
                            echo "<p>Ваш запрос на вывод данных не выполнен. Пожалуйста, напишите об этом владельцу: admin@xn--80abmapaoea5cmjd.su. <br><strong>Код ошибки:</strong></p>";
                            exit (mysql_error());
                            }
                        if (mysql_num_rows ($result10) > 0) {
                            $row10 = mysql_fetch_array ($result10);
                            do {
                                printf ("
                                    <div id='block'>
                                        <div id='block_t'><a class='link' title='Подробнее...' href='book.php?id=$row10[id]'>«$row10[title]»</a></div>
                                        <div id='block_c'>
                                                  <table align='center'>
                                                  <tr>
                                                       <td>
                                                 <div id='img'>
                                                     <img class='img' src='$row10[image]'>
                                                 </div>
                                                       </td>
                                                  </tr>
                                                  </table>
                                             <div id='txt'>
                                                <p><strong>Автор:</strong> $row10[author]</p>
                                                <p><strong>Название:</strong> $row10[title]</p>
                                                <p><strong>Год издания:</strong> $row10[year]</p>
                                                <p><strong>Озвучил(а):</strong> $row10[postscoring]</p>
                                                <p><strong>Описание:</strong> $row10[description]</p>
                                            </div>
                                        </div>
                                        <div id='block_b'>
                                                       <table align='center' width='500'>
                                                            <tr>
                                                                 <th>«Просмотров: $row10[view]»</th>
                                                                 <th>«Добавлена: $row10[date]»</th>
                                                    <th>«Отзывов: $row10[meter]»</th>
                                                            </tr>
                                                       </table>
                                                  </div>
                                    </div>", $row10 ["id"], $row10 ["title"], $row10 ["image"], $row10 ["author"], $row10 ["title"], $row10 ["year"], $row10 ["postscoring"], $row10 ["description"], $row10 ["view"], $row10 ["date"], $row10["meter"];
                                }
                            while (
                                $row10 = mysql_fetch_array ($result10)
                                );
                            }
                        else {
                            echo "<p align='center'><strong>По Вашему запросу данных не обнаружено.</strong></p>";
                            }
                    ?>
                </div>
                <div id="conteiner_b"></div>
            </div>
            <?php include ("blocks/footer.php");?>
        </div>
    </body>
</html>
Но он ни фига не работает! Показывает пустую страницу. Подскажите, пожалуйста, в чём ошибка? Заранее спасибо.
24.01.2013 11:29:34
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #2
RE: Поиск по сайту
Да уж сам найти не могу нормальный поиск на php+mysql. А выше приведенный пример поиска, похоже из курсов Е.Попова.
У меня он щас стоит, так вот ищу ему замену, ибо в нем куча недоработок, и не вижу смысла вам тоже на него тратить время.
Даже если он у вас заработает:
1) В нем нет постраничной листалки, а моя так к нему нормально и не встала
2) При пустом или коротком запросе не отображаются все части сайта из-за exit() которые идут после нее, убрав ее он тупо извлекает из базы все данные, если найдет совпадений по поиску больше 50% то выдаст что ничего не найдено.... и еще там есть разные недоработки. В общем как по мне - хреновый поиск.

P.S. Я как бы не спец в php, но у меня он тоже не искал пока не изменил WHERE MATCH(author, title, text) AGAINST('$search')

на WHERE text like '%$search%
29.01.2013 11:59:34
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #3
RE: Поиск по сайту
Насчет поиска по сайту тема очень актуальная, и до сих пор нет ни одного ответа.
У меня сайт самописный html/css/javascript/php и например, чтобы отправить почту имеется message.php к которому подключается обработчик config.php с помощью include и все отлично работает без базы данных mysql. Могу данный код разместить на сайте, если нужно или создать отдельную тему.
С поиском имеются проблемы, вот и решил реализовать поиск на php без подключения mysql, так как сайт самописный и без базы данных, то и поиск хотел реализовать подобным образом.
Так как делаю по возможности все сам, то непросто реализовать такой поиск, но думаю, что многим пользователям такой поиск и хотелось бы реализовать на своем сайте, но толкового ни в интернете, ни на каких-либо учебных CD/DVD дисках такого php поиска нет, точнее он есть, но работает, уж больно коряво.

Например, как реализовать поиск по базе данных, тут не проблем, реализовать можно и этому есть примеры, но это сложно для большинства пользователей, конечно можно подключить поиск от yandex или google, но тут большого ума не надо, да и поиск работать будет не совсем корректно.

Если, например число вводимых символов меньше 3, то будет выдаваться информация, что слишком короткий поисковый запрос и результат поиска будет, например показываться на странице, где найденный фрагменты будут подсвечены.

У Русакова, например на сайте реализован данный поиск, да я и сам знаю, как его реализовать, так как смотрел его курс, где в качестве примера он разбирал свой сайт, но требуется mysql

На данном сайте буду создавать темы и размещать какие-либо скрипты на javascript или php в скором времени, так как если что-то получаешь надо отдавать взамен, так будет правильно.

Так что любой, кто прочитал это сообщение давайте вместе это реализуем, сделаем поиск по сайту на php без подключения mysql или если подключается, то только для поиска, например, database.php, а все страницы лежат в корне или в папках, но не в базе.
PHP код из курсов, например, Попова или других авторов не выкладываю на сайте, так как таким поиском пользоваться неудобно для пользователя.
Уважаемый администратор, просьба простить за столь длинное сообщение, но думаю, что тема ОЧЕНЬ актуальная и такой PHP скрипт будет многим нужен.
С уважением, Алексей.
23.02.2015 06:59:06
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru