Как сделать скрипт поиска по MySQL

  • Автор темы Алексей Ткачёв
  • 3408
  • Обновлено
  • 16, Mar 2013
  • #1
Я хочу сделать скрипт поиска по БД mysql, вот примерно как выглядит таблица.

-- Структура таблицы `search`

--

CREATE TABLE `search` (

`id` varchar(4) NOT NULL default '',

`text` varchar(255) NOT NULL default '',

PRIMARY KEY (`id`,`text`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Дамп данных таблицы `search`

--

INSERT INTO `search` VALUES ('2', 'Кожаные ремни');

INSERT INTO `search` VALUES ('3', 'Кожаные шорты');

INSERT INTO `search` VALUES ('4', 'Кожаные перчатки');

Имя базы id's, значит нужен скрипт поиска по этим словам и чтоб показывало сам ID. Например вписал Кожаные ремни и тебе выдаст цифру 2. Я только начинающий, базу составил сам, думаю правильно, есть что, то там будет 9990 строк.

Базу то составить ума хватило, а вот чтоб поиск был по этим словам, не хватает пока.

Покажет кто как составить скрипт поиска?

Алексей Ткачёв


Рег
16 Mar, 2013

Тем
2

Постов
53

Баллов
73
  • 16, Mar 2013
  • #2
Алексей Ткачёв, я в базах данных сама только начинаю разбираться, но заинтересовавшись вопросом, советую почитать хотя бы вот тут...
 

Ночная странница


Рег
30 Jan, 2012

Тем
98

Постов
1642

Баллов
2622
  • 17, Mar 2013
  • #3
Ночная:
Алексей Ткачёв, я в базах данных сама только начинаю разбираться, но заинтересовавшись вопросом, советую почитать хотя бы вот тут...

Спасибо, щас на денвере буду тестировать Добавлено через 22 минуты Вообщем не рабочая тема. Щас буду искать скрипты на vanta. Если найду, отпишусь что рабочее а что нет, ведь всем интересно думаю
 

Алексей Ткачёв


Рег
16 Mar, 2013

Тем
2

Постов
53

Баллов
73
  • 17, Mar 2013
  • #4
Получилось.

Вот форма
 <form action="search.php" method="post">

Название<br>

<input type="text" name="text" size="60" value="">

<input type="submit" name="submit" value="Искать">

<input type="reset" name="reset" value="Очистить">

</form>
вот скрипт, который осуществляет поиск
 <?php

/* Соединение, выбор БД */

$link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");

mysql_select_db("id") or die("Не найдена БД");

/* Выполнение SQL запроса */

$query = "SELECT * FROM search WHERE UPPER(text) LIKE '%".strtoupper($_POST['text'])."%'";

$result = mysql_query($query) or die("Запрос ошибочный");

/* Печать результатов в HTML */

print "<table>";

while ($line = mysql_fetch_array($result, MYSQL_NUM)) {

print "<tr>";

for ($i=1;$i<=2;$i++) { print "<td>$line[$i]</td>"; }

print "</tr>";

}

print "</table>";

/* Освобождение памяти, занятой результатом запроса */

mysql_free_result($result);

/* Закрытие соединения */

mysql_close($link);

?>
а вот дамп базы
 -- Структура таблицы `search`

--

CREATE TABLE `search` (

`id_mag` int(11) NOT NULL auto_increment,

`id` varchar(4) default NULL,

`text` varchar(100) default NULL,

PRIMARY KEY (`id_mag`),

KEY `idx_id` (`id`),

KEY `idx_test` (`text`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--

-- Дамп данных таблицы `search`

--

INSERT INTO `search` VALUES (1, '2', 'Кожаные ремни');

INSERT INTO `search` VALUES (2, '3', 'Кожаные перчатки');

Вот и рабочая тема, может кому пригодится.

Ищет по словам, выдаёт все возможные варианты.

В моём случае тут 9990 строк в базе, ищет шустро и чётко
 

Алексей Ткачёв


Рег
16 Mar, 2013

Тем
2

Постов
53

Баллов
73
Тем
49554
Комментарии
57426
Опыт
552966

Интересно