|
|
|
| запрос "SELECT id FROM tbl WHERE title LIKE '%Текущий ремонт%'"
находит в базе по title="Текущий ремонт помещений Центр гигиены и эпидемиологии"; и выводит id этого титла
так вот как мне найти обратный id
в базе $title="Текущий ремонт";
нужно найти id этого title по запросу "Текущий ремонт помещений Центр гигиены и эпидемиологии"
т.е. выводит id title, где title из БД содержится в $zapros="Текущий ремонт помещений Центр гигиены и эпидемиологии"; | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 00:34)
| | Мягко говоря, нихера не понятно.
Еще раз и по-русски. Только не надо снова то же самое писать, ок? А то просишь понятнее объяснить - а те будто копируют предыдущий пост. | |
|
|
|
|
|
|
|
для: neadekvat
(16.11.2010 в 13:51)
| | еще раз попробую объяснить.
нужен запрос поиска.
$searchword="автозапчасти";
запрос очень прост: "SELECT `id` , `title` FROM `tbl` WHERE `title` LIKE '%$searchword%'"
находим $id=1, $title="куплю автозапчасти в москве";
нужен такой запрос:
$searchword="куплю автозапчасти в москве";
"SELECT `id` , `title` FROM `tbl` WHERE `title` LIKE '%$searchword%'"
находим $id=1, $title="автозапчасти";
т.е. если $title в таблице содержится в $searchword, то выводим результат. | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 19:26)
| | Вас быстрее поймут, если Вы таки будете выражаться не на веселой помеси php и SQL, а только на одном языке - SQL.
Понимаете, вот это вот...
> $title в таблице содержится в $searchword
... оно выносит мозг, при чем сразу и навсегда.
В таблицах нет переменных. В них есть поля. | |
|
|
|
|
|
|
|
для: Trianon
(16.11.2010 в 19:41)
| | mysql> SELECT * FROM tbl_name WHERE title LIKE '%value%';
выполняет поиск value в title
нужно чтобы был поиск, где title содержится в value | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 19:59)
| | бог мой...
Вы про то что вам нужно не
SELECT * FROM tbl_name WHERE title LIKE '%value%'
| или что то же самое что и
SELECT * FROM tbl_name WHERE LOCATE(value, `title`)
|
а вместо этого нужно
SELECT * FROM tbl_name WHERE LOCATE(`title`, value)
|
ну или если value - переменная величина из php, то
<?
$value = ".....";
$value_str = "'".mysql_real_escape_string($value)."'";
$sql = "SELECT * FROM tbl_name WHERE LOCATE(`title`, $value_str)";
|
?! | |
|
|
|
|
|
|
|
для: Trianon
(16.11.2010 в 20:08)
| | вот спасибо! Самое то!
многое узнал, еще раз спасибо! | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 19:26)
| | То есть, если от пользователя пришел поисковой запрос "куплю автозапчасти в москве", вам надо в базе найти запись, у которой заголовок "автозапчасти"?
Если так - то, во-первых, это можно было сказать намного проще (какие еще обратные id?), во-вторых, просто разбиваете запрос по словам (очевидно, через пробел) - и в запрос подставляете эти слова. Т.е. WHERE col LIKE 'some' OR col LIKE 'some2'... | |
|
|
|
|
|
|
|
для: neadekvat
(16.11.2010 в 20:19)
| | а если несколько слов? не подходит OR | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 21:20)
| | И почему же не подходит, интересно? | |
|
|
|
|
|
|
|
для: neadekvat
(16.11.2010 в 21:29)
| | "куплю автозапчасти в москве оптом", вам надо в базе найти запись, у которой заголовок "автозапчасти оптом" - подходит
"куплю автозапчасти в москве", вам надо в базе найти запись, у которой заголовок "автозапчасти оптом" - не подходит, т.к. в запросе нет "оптом" | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 22:04)
| | Я так понимаю, это вы сами так решили, даже не попробовав? | |
|
|
|
|
|
|
|
для: linux_hak
(16.11.2010 в 00:34)
| | Что есть "обратный id"? | |
|
|
|