[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите скрипт поиска по базе Mysql
dark777
Подскажите, пожалуйста, скрипт поиска по базе Mysql или статью с пошаговым написанием такого скрипта.



Спустя 1 час, 18 минут, 16 секунд (2.11.2010 - 17:54) DmitryOpalev написал(а):
Ммммм...
SELECT * FROM `table` WHERE name='имя'

Это к примеру... можешь делать несколько запросов, разделяя их AND

Спустя 8 минут, 42 секунды (2.11.2010 - 18:03) SlavaFr написал(а):
ищи туториалы по SQL, а потом примеры как при помощи php обрабатывать sql запросы.
не даю не каких ссылок, так как туториалы это дело вкуса.

Спустя 14 минут, 46 секунд (2.11.2010 - 18:17) DmitryOpalev написал(а):
mysql_query(-запрос, см.выше-)
Это просто запрос...

Спустя 8 минут, 26 секунд (2.11.2010 - 18:26) SlavaFr написал(а):
Цитата (DmitryOpalev @ 2.11.2010 - 15:17)
mysql_query(-запрос, см.выше-)
Это просто запрос...

@DmitryOpalev ты действительно думаеш, что этой информации достаточно, чтоб работать с базами данных?

Спустя 1 минута (2.11.2010 - 18:27) DmitryOpalev написал(а):
Да нет конечно happy.gif

Спустя 22 минуты, 25 секунд (2.11.2010 - 18:49) ИНСИ написал(а):
dark777 вот самый простой пример:

         $rows = mysql_query("
SELECT *
FROM `news`
WHERE `title` LIKE '%"
. $_GET['title'] ."%'
"
);


ключевой момент, тут оператор: LIKE. Смотри про него инфу. И самое главное, смотри как защитить свой поиск от sql инъекций.

Спустя 2 минуты, 36 секунд (2.11.2010 - 18:52) Гость_Michael написал(а):
welbox2, у тебя sql-иньекция.

Спустя 2 минуты, 26 секунд (2.11.2010 - 18:54) dark777 написал(а):
я наверное не правильно задал вопрос. Есть форма поиска, пользователь вписал туда слово или словосочетание, после чего осуществляется поиск по базе и результаты выводятся на страницу "результат поиска". Подскажите пожалуйста blink.gif

Спустя 25 минут, 20 секунд (2.11.2010 - 19:20) RCuPeR написал(а):
А чем тебя MATCH не устраивает ?!
mysql_query("SELECT * FROM data WHERE MATCH (text) AGAINST ('$search')",$db);


Спустя 6 минут, 21 секунда (2.11.2010 - 19:26) dark777 написал(а):
MATCH меня устраивает я только не могу найти статью как по этапно создать данный запрос, а именно от того момента как пользователь ввел данные, далее они передались в скрипт и результаты вывелись на страницу. sad.gif

Спустя 11 минут, 2 секунды (2.11.2010 - 19:37) RCuPeR написал(а):
Вот форма поиска:
<div class="text_left_menu">Поиск</div>

<form
action="search.php" method="post" name="form_s">

<p
class="search_t">Поиск по сайту</p>
<p><input
name="search" type="text" size="25" maxlength="40">
<br>
<input
name="submit_s" type="submit" value="Искать">
</p>


</form>


Обработчиком является файл search.php.
При нажатии на кнопку "Искать" у нас открывается файл search.php и выполняет всё, что нам нужно:

$result = mysql_query("SELECT * FROM data WHERE MATCH (text) AGAINST ('$search')",$db);

if (!$result)
{
echo "<p>Ошибочка! Сообщите об этом мне, т.е ВЕЛИКОМУ Администратору ***@mail.ru. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_assoc($result);

do
{



printf ("<table align='center' class='post'>

<tr>
<td class='post_title'>
<p class='post_name'><img class='mini' align='left' src='%s'><a href='view_post.php?id=%s'>%s</a></p>
<p class='post_adds'>Дата добавления: %s</p>
<p class='post_adds'>Автор статьи: %s</p></td>
</tr>

<tr>
<td>%s <p class='post_view'>Просмотров: %s </p></td>
</tr>

</table><br><br>"
,$myrow["mini_img"],$myrow["id"],$myrow["title"], $myrow["date"],$myrow["author"],$myrow["description"], $myrow["view"]);



}
while ($myrow = mysql_fetch_assoc($result));


}

else
{
echo "<p>Запрос не действителен.</p>";
exit();
}


Спустя 5 минут, 13 секунд (2.11.2010 - 19:42) RCuPeR написал(а):
Вот весь файлик search.php:



<?php include 'blocks/db.php';

if (isset($_POST['submit_s']) && $_POST['submit_s'] != '') $submit_s = $_POST['submit_s'];
if (isset($_POST['search']) && $_POST['search'] != '') $search = $_POST['search'];

if (isset($submit_s))
{
if (empty($search) or strlen($search) < 3)

{
exit("<p>Поисковый запрос не введён, либо он менее 3-х символов.</p>");
}

$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);



}
else
{
exit("<p>Вы обратились к файлу без необходимых параметров.</p>");
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title><?php echo htmlspecialchars("Заметки по запросу $search"); ?></title>
<
link href="css/style.css" rel="stylesheet" type="text/css">
<
meta name="description" content="<?php echo htmlspecialchars($myrow["meta_d"]);?>">
<
meta name="keywords" content="<?php echo htmlspecialchars($myrow["meta_k"]);?>">
</
head>
<
body>

<
table width="1000" border="0" align="center">
<
tr>
<?php include 'blocks/menu(lava).php';?>
</tr>
<
tr>
<
td><table width="994" border="0">
<
tr>
<
td width="223" valign="top" class="lefttd">
<?php include 'blocks/lefttd.php';?>
</td>
<
td width="761" valign="top" class="center">
<?

echo $myrow["text"];


$result = mysql_query("SELECT * FROM data WHERE MATCH (text) AGAINST ('$search')",$db);

if (!$result)
{
echo "<p>Ошибочка! Сообщите об этом мне, т.е ВЕЛИКОМУ Администратору ***@mail.ru. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_assoc($result);

do
{



printf ("<table align='center' class='post'>

<tr>
<td class='post_title'>
<p class='post_name'><img class='mini' align='left' src='%s'><a href='view_post.php?id=%s'>%s</a></p>
<p class='post_adds'>Дата добавления: %s</p>
<p class='post_adds'>Автор статьи: %s</p></td>
</tr>

<tr>
<td>%s <p class='post_view'>Просмотров: %s </p></td>
</tr>

</table><br><br>"
,$myrow["mini_img"],$myrow["id"],$myrow["title"], $myrow["date"],$myrow["author"],$myrow["description"], $myrow["view"]);



}
while ($myrow = mysql_fetch_assoc($result));


}

else
{
echo "<p>Запрос не действителен.</p>";
exit();
}

?>
</td>
</
tr>
</
table></td>
</
tr>
<
tr>
<?php include 'blocks/footer.php';?>
</tr>
</
table>
</
body>
</
html>


Спустя 8 минут, 14 секунд (2.11.2010 - 19:51) dark777 написал(а):
Выдает такую ошибку:
Can't find FULLTEXT index matching the column list

Спустя 11 минут, 14 секунд (2.11.2010 - 20:02) RCuPeR написал(а):
Цитата (dark777 @ 2.11.2010 - 16:51)
Выдает такую ошибку:
Can't find FULLTEXT index matching the column list

Ах да...Забыл.
Поставь индекс на то поле в БД где ищешь.

Вот смотри: у меня поиск идет по таблице "data" в поле "text", значит мне нужно поставить индекс на поле "text".
mysql_query("SELECT * FROM data WHERE MATCH (text) AGAINST ('$search')",$db);

user posted image

Спустя 13 минут, 16 секунд (2.11.2010 - 20:15) dark777 написал(а):
У меня все так же как и у Вас, но все равно та же ошибка.

Спустя 1 минута, 20 секунд (2.11.2010 - 20:16) RCuPeR написал(а):
Индекс в БД точно поставил?!
Ошибка ссылается на него.

Спустя 2 минуты, 32 секунды (2.11.2010 - 20:19) dark777 написал(а):
Спасибо ВАМ огромное все заработало я три дня ничего не мог найти а Вы за 20 минут мне все показали спасибо!!!

Спустя 4 минуты, 2 секунды (2.11.2010 - 20:23) RCuPeR написал(а):
Блин, как приятно помогать =)
Я в этом дело тоже новичок, это, можно сказать, первая внешняя помощь =)
Круто =)

Спустя 1 минута, 6 секунд (2.11.2010 - 20:24) RCuPeR написал(а):
А что ты пишешь ?!
Блог свой или что-то по-серьёзней ?!

Спустя 1 минута, 27 секунд (2.11.2010 - 20:25) dark777 написал(а):
Блог о странах мира

Спустя 2 минуты, 19 секунд (2.11.2010 - 20:28) RCuPeR написал(а):
blink.gif Серьёзно.
А ты в веб-дизайне рубишь?!

Спустя 2 минуты, 59 секунд (2.11.2010 - 20:31) dark777 написал(а):
Я если честно только начинаю изучать... smile.gif

Спустя 1 минута, 45 секунд (2.11.2010 - 20:33) RCuPeR написал(а):
Эх..Ну ладно.
Удачи в разработке biggrin.gif

Спустя 1 минута, 8 секунд (2.11.2010 - 20:34) dark777 написал(а):
Еще раз СПАСИБО!

Спустя 12 дней, 18 часов, 51 минута, 42 секунды (15.11.2010 - 15:25) pashaiva написал(а):
RCuPeR, я тоже делаю поиск по сайту, используя твой код. Поставил индекс своей таблице, все равно пишет: Can't find FULLTEXT index matching the column list

Не пойму в чем ошибка

Спустя 32 минуты, 20 секунд (15.11.2010 - 15:58) twin написал(а):
RCuPeR
Цитата
Блин, как приятно помогать =)
Я в этом дело тоже новичок, это, можно сказать, первая внешняя помощь =)
Круто =)

Это похвально, но немедленно сюда, а то вместо благодарностей скоро начнешь получать проклятия.

Спустя 57 минут, 1 секунда (15.11.2010 - 16:55) Ser18 написал(а):
У меня вот такой поиск
$recherche = mysql_query("SELECT tema FROM naz ");

while ($row = mysql_fetch_assoc($recherche)) // Выводим данные в цикле
{
//Результат полученный из БД приводим к одному регистру
//$tr = массив из букв типа $tr = array("Ё" => "ё","Й" => "й","Ц" => "ц") и так весь алфавит

$inf = strtr($row['naz'], $tr);
//Ищем совпадения в полученной информации из БД с введенным словом
//$a=$_POST['slovo'] - слово введенное в форму
//Пробел чтоб совпадение не было нулевым

$res_cher = strpos(" ".$inf, $a);
//Если есть совпадения то $res_cher равно какому то числу
if($res_cher) {
//Вы водим совпадение на экран
echo $recherche_sl['naz'];
}
}

стоит ли его переделывать?
Выше предложаннные поиски наверно быстрей работают

Спустя 1 час, 36 минут, 22 секунды (15.11.2010 - 18:31) Админ написал(а):
Ser18
не советовал бы я тебе такой поиск = лучше пусть мускул ищет = меньше ресурсов плюс скорость.

Спустя 15 минут, 38 секунд (15.11.2010 - 18:47) Ser18 написал(а):
А на php можно сделать поиск более быстрый и менее ресурсоемкий чем mysql?

Спустя 4 часа, 59 минут, 4 секунды (15.11.2010 - 23:46) RCuPeR написал(а):
Цитата (twin @ 15.11.2010 - 12:58)
RCuPeR
Цитата
Блин, как приятно помогать =)
Я в этом дело тоже новичок, это, можно сказать, первая внешняя помощь =)
Круто =)

Это похвально, но немедленно сюда, а то вместо благодарностей скоро начнешь получать проклятия.

Прошёл. Вроде бы уже пишу по справочку, отучаюсь от курсов Попова.

Спустя 17 дней, 17 часов, 46 минут, 8 секунд (3.12.2010 - 17:32) Pinoplast написал(а):
Не стал создавать новую тему, у меня появился другой вопрос, а как сделать поиск по примеру:

у меня в базе есть список фамилий:

Пукин
Пукакун
Пурамук
Пурасук итд

Меня интересует как поисковым запросом выбрать тех что начинаются на Пук или фамили в котрых встречаються сочетание букв "----ра----"????

Спустя 2 месяца, 28 дней, 22 часа, 45 минут, 36 секунд (2.03.2011 - 16:18) ByLex написал(а):
Ребята, нужна помощь. Необходимо поправить файл поиска на php, для того чтобы искалась строка целиком в базе sql. Если кто может помочь пишите icq 242307013. Если поможете я отблагодарю!

Спустя 1 день, 2 часа, 21 минута, 15 секунд (3.03.2011 - 18:39) Гость_Жека написал(а):
Всем привет. Вот в поисках поиска smile.gif я наткнулся вот на этот поиск http://htmlweb.ru/php/example/mysql_poisk.php может кому пригодится.

из слов автора:
# Особенности кода:
#Контекстный поиск отдельных слов, введенных через пробел в строке запроса
# Подсветка найденных фрагментов
# Сортировка по цене или по наименованию
# Постраничный вывод, номера страниц выводятся сверху и снизу

Спустя 5 месяцев, 13 дней, 19 часов, 39 минут, 54 секунды (17.08.2011 - 13:19) phoebe написал(а):
Здравствуйте!
У меня такая проблема в браузере Mozilla Firefox поиск работает, а в браузере Maxthon не работает пишет "Вы обратились к файлу без необходимых параметров."
вот мой код
Форма

<form action="view_search.php" id="search-form" method="post" name="form">
<p>
<input name="search" type="text" value="Поиск" size="25" maxlength="40">

<input class="search_b" type="submit" name="submit_s" value="Поиск" />

</p>
</form>


запрос

<?php include 'blocks/db.php';
if (isset($_POST['submit_s']) && $_POST['submit_s'] != '') $submit_s = $_POST['submit_s'];
if (isset($_POST['search']) && $_POST['search'] != '') $search = $_POST['search'];
if (isset($submit_s))
{ if (empty($search) or strlen($search) < 4)
{ exit("<p>Поисковый запрос не введён, либо он менее 4-х символов.</p>"); }
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search); }
else{ exit("<p>Вы обратились к файлу без необходимых параметров.</p>"); }?>



вывод
<?
$result = mysql_query("SELECT cover,id,text,categor,date,view,downloads FROM dvdcd WHERE MATCH(text) AGAINST('$search')",$db);

if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> Код ошибки:</p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);


do
{

printf ("<div class='container2' id='container'>
<div id='foto' class='cover'>%s</div>

<div id='info' class='info'>
<p class='index_name'><a href='view_cover.php?id=%s'>%s </a></p>
<p class='index_adds'>Категория: %s</p>
<p class='index_adds'>Дата добавления: %s</p>
<p class='index_adds'>Просмотров: %s</p>
<p class='index_adds2'>%s </p></div>

</div><br><br>",$myrow["cover"],$myrow["id"],$myrow["text"],$myrow["categor"],$myrow["date"],$myrow["view"],$myrow["downloads"], $r);
}

while ($myrow = mysql_fetch_array ($result));
}

else
{
echo "<p>$search</p><p class='text'>Искомая комбинация слов нигде не встречается.
</p>";
}

?>


подскажите пожалуйста как сделать чтобы во всех браузерах работал

Спустя 2 минуты, 21 секунда (17.08.2011 - 13:21) inpost написал(а):
phoebe
СОздай свою тему, там тебе и поможем.

Спустя 5 минут, 44 секунды (17.08.2011 - 13:27) phoebe написал(а):
создала
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.