PHP поиск по сайту

S
На сайте с 07.03.2013
Offline
19
884

Добрый вечер, уже несколько дней я пытаюсь создать поиск по своему сайту. Использую я запрос к БД с LIKE, у меня не получается. Прошу помощи на этом форуме. Я использую MySQL, название таблицы 'statti', колонка с названием 'title', описанием 'text'. Помогите мне, пожалуйста(

IL
На сайте с 20.04.2007
Offline
435
#1
Sleeky:
Использую я запрос к БД с LIKE, у меня не получается.

Где код? Что именно не получается?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
F9
На сайте с 13.04.2008
Offline
104
#2

Попробую свои непрокачанные навыки телепата...

SELECT * FROM `statti` WHERE `title` LIKE '%запрос%'

Предварительно нужно убедиться, что используемые кодировки совпадают.

S
На сайте с 07.03.2013
Offline
19
#3

<?php 

define('DB_HOST', 'localhost');
define('DB_USER', ' ');
define('DB_PASS', ' ');
define('DB_NAME', ' ');

if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
exit('Cannot select database');
}

mysql_query('SET NAMES utf8');

function search ($query)
{
$query = trim($query);
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);

if (!empty($query))
{
if (strlen($query) < 3) {
$text = '<p>Слишком короткий поисковый запрос.</p>';
} else if (strlen($query) > 128) {
$text = '<p>Слишком длинный поисковый запрос.</p>';
} else {
$q = "SELECT *
FROM `statti` WHERE `text` LIKE '%$query%'
OR `title` LIKE '%$query%' OR `text` LIKE '%$query%'
OR `discription` LIKE '%$query%'";

$result = mysql_query($q);

if (mysql_affected_rows() > 0) {
$row = mysql_fetch_assoc($result);
$num = mysql_num_rows($result);

$text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';

do {
// Делаем запрос, получающий ссылки на статьи
$q1 = "SELECT * FROM `statti` WHERE `id` = '$row[id]'";
$result1 = mysql_query($q1);

if (mysql_affected_rows() > 0) {
$row1 = mysql_fetch_assoc($result1);
}

$text .= '<p>'.$row['title'].'</p>';

} while ($row = mysql_fetch_assoc($result));
} else {
$text = '<p>По вашему запросу ничего не найдено.</p>';
}
}
} else {
$text = '<p>Задан пустой поисковый запрос.</p>';
}

return $text;
}
?>



<form name="search" method="post" action="search.php">
<input type="search" name="query" placeholder="Поиск">
<button type="submit">Найти</button>
</form>



<?php
if (!empty($_POST['query'])) {
$search_result = search ($_POST['query']);
echo $search_result;
}
?>

Чисто случайно код нашел, он работает!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий