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

А

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

#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 строк. Базу то составить ума хватило, а вот чтоб поиск был по этим словам, не хватает пока. Покажет кто как составить скрипт поиска?:)
 
Н

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

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

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

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

Спасибо, щас на денвере буду тестировать:)

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

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

#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("Не найдена БД");

$query = "SELECT * FROM search WHERE UPPER(text) LIKE '%".strtoupper($_POST['text'])."%'";
$result = mysql_query($query) or die("Запрос ошибочный");

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 строк в базе, ищет шустро и чётко
 
Get involved!

Here you can only see a limited number of comments. On СЕО Форум Вебмастеров you see all comments and all functions are available to you. To the thread