пример
$res = mysql_query("SELECT SUBSTRING_INDEX(`". IRB_DBPREFIX ."contents`.`text`,' '," . 5 . ") AS `text`,
SUBSTRING_INDEX(`". IRB_DBPREFIX ."events`.`text`,' '," . 5 . ") AS `text`,
SUBSTRING_INDEX(`". IRB_DBPREFIX ."news`.`text`,' '," . 5 . ") AS `text`,
SUBSTRING_INDEX(`". IRB_DBPREFIX ."spec`.`text`,' '," . 5 . ") AS `text`
FROM `". IRB_DBPREFIX ."contents`,
`". IRB_DBPREFIX ."events`, `". IRB_DBPREFIX ."news`,
`". IRB_DBPREFIX ."reviews`, `". IRB_DBPREFIX ."spec`
WHERE `". IRB_DBPREFIX ."contents`.`text` LIKE '%". escapeString(addcslashes($POST['value1'], '%\\_')) ."%'
OR `". IRB_DBPREFIX ."events`.`text` LIKE '%". escapeString(addcslashes($POST['value1'], '%\\_')) ."%'
OR `". IRB_DBPREFIX ."news`.`text` LIKE '%". escapeString(addcslashes($POST['value1'], '%\\_')) ."%'
OR `". IRB_DBPREFIX ."spec`.`text` LIKE '%". escapeString(addcslashes($POST['value1'], '%\\_')) ."%'");
вывожу в цикле типа того
while($row = mysql_fetch_assoc($res))
{
$result .= '<a href="">'. $row['text'] .'...</a><br />';
}
вот тут то и надо как то сформировать ссылку на страницу, где найден текст. подскажите
Спустя 7 минут, 55 секунд (10.12.2010 - 14:26) sergeiss написал(а):
Я чего-то не понял суть этого запроса... Почему бы не сделать так вот, через UNION:
В итоге в первой колонке с именем table_contain будет находится имя искомой таблицы, а в колонке text - найденный текст.
select 'имя_первой_таблицы' as `table_contain`, `text` from `имя_первой_таблицы` where <условие для первой таблицы>
UNION
select 'имя_второй_таблицы' as `table_contain`, `text` from `имя_второй_таблицы` where <условие для второй таблицы>
UNION
... и так далее, пока не будут перечислены все таблицы.
В итоге в первой колонке с именем table_contain будет находится имя искомой таблицы, а в колонке text - найденный текст.
Спустя 9 минут, 51 секунда (10.12.2010 - 14:36) Lenarfate написал(а):
пишет про вторую таблицу Unknown column 'такая то' in 'field list'
Спустя 11 минут, 27 секунд (10.12.2010 - 14:48) sergeiss написал(а):
Lenarfate так ты запрос-то покажи
Спустя 4 минуты, 33 секунды (10.12.2010 - 14:52) Lenarfate написал(а):
SELECT `". IRB_DBPREFIX ."contents` AS `table_contain`,и тп еще несколько таблиц
SUBSTRING_INDEX(`text`,' '," . 5 . ") AS `text`
FROM `". IRB_DBPREFIX ."contents`
WHERE `text`
LIKE '%". escapeString(addcslashes($POST['value1'], '%\\_')) ."%'
UNION
SELECT `". IRB_DBPREFIX ."arhiv` AS `table_contain`,
SUBSTRING_INDEX(`text`,' '," . 5 . ") AS `text`
FROM `". IRB_DBPREFIX ."arhiv`
WHERE `text`
LIKE '%". escapeString(addcslashes($POST['value1'], '%\\_')) ."%'
Спустя 4 минуты, 36 секунд (10.12.2010 - 14:57) sergeiss написал(а):
Цитата (Lenarfate @ 10.12.2010 - 15:52) |
SELECT `". IRB_DBPREFIX ."arhiv` AS `table_contain`, |
Вот тут ошибочка Ты привык ставить имя таблицы в "обратные кавычки", и это сыграло с тобой злую шутку
Потому что тут это имя - это просто символьная строка!!! Обрати внимание, что у меня (в первом ответе этой темы) было написано в обычных одинарных кавычках и это не была ошибка, а было совершенно сознательно так сделано.
Спустя 5 минут, 9 секунд (10.12.2010 - 15:02) Lenarfate написал(а):
))спасибо
Спустя 7 минут, 19 секунд (10.12.2010 - 15:09) Lenarfate написал(а):
вот теперь только с Николаевским пагинатором не работает))
Спустя 4 минуты, 6 секунд (10.12.2010 - 15:13) Lenarfate написал(а):
пишет The used SELECT statements have a different number of columns. так то.
Спустя 30 минут, 56 секунд (10.12.2010 - 15:44) sergeiss написал(а):
А это не ко мне вопрос Анализируй его пагинатор, что ему там не нравится, почему количество столбцов так важно... Я не знаю.